2012-01-17 45 views
0

我有无数的链接在我看来,这是显示像下面捕捉链接点击Asp.net MVC

retailerName1 ----------信息------- ---锚链接,retailer1

retailerName2 ---------- ----------信息锚链接,retailer2

retailerName3 ------ ---- info ---------- anchor-Link-retailer3

现在,我想要的是捕获从用户对任何这些链接的点击,然后在服务器上,我想增加的clickCount领域对数据库中的特定零售商的记录。

对于这一点,我想,我需要一些像jQuery代码客户端脚本的应发rerailer数据,然后使用这些数据在服务器上做进一步的操作。请告诉我这将发送适当的数据的jQuery代码。

UPDATE

这是链接代码

<a href="retailerURL.com" target ="_blank">anchor-Link-retailer3</a> 

回答

1

这不是很清楚你所说的appropriate data在你的问题,但不零售ID就足够了?这不需要JavaScript。

@foreach (var retailer in Model.Retailers) 
{ 
    <div> 
    @retailer.Name 

    ... some info 

    @Html.ActionLink(
     "some link text", 
     "someAction", 
     "someController", 
     new { retailerId = retailer.Id }, 
     null 
    ) 
    </div> 
} 

,你可以使用这个零售商ID做相应的控制器的动作里面无论你是打算做:

public ActionResult SomeAction(int retailerId) 
{ 
    ... 
} 

当生成你的链接,你可以沿着这条零售商ID传递

UPDATE:

一旦可能性是使用一个AJAX请求到零售商的ID发送给你的控制器动作链接被点击的时候。为此,您需要零售商ID。你可以使用一个HTML5数据 - *属性上的锚:

<a href="retailerURL.com" target ="_blank" class="retailer" data-retid="123" data-url="@Url.Action("SomeAction")">anchor-Link-retailer3</a> 

,然后你可以使用jQuery订阅这些链接的点击事件,并发送AJAX请求:

$(function() { 
    $('.retailer').click(function() { 
     var url = $(this).data('url'); 
     var retailerId = $(this).data('retid'); 
     $.post(url, { retailerId: retailerId }); 
    }); 
}); 

UPDATE 2:

另一种可能性是在您的控制器操作中执行重定向到零售商网站。这样,您就不需要AJAX:

@Html.ActionLink(
    "some link text", 
    "someAction", 
    "someController", 
    new { retailerId = retailer.Id }, 
    new { target = "_blank" } 
) 

和控制器动作更新数据库里面,取零售商网站和重定向:

public ActionResult SomeAction(int retailerId) 
{ 
    // TODO: 
    // 1. fetch the retailer website given the id: 
    // 2. update the database with the info 
    // 3. redirect to the retailer website 

    string retailerWebsite = ... 
    return Redirect(retailerWebsite); 
} 
+0

妈的!可能是我没有解释清楚的东西....链接将打开零售商网站的新窗口....我会更新的问题,并显示链接的代码太.....误导性非常抱歉.. .. – 2012-01-17 07:10:36

+0

@PankajUpadhyay,好了,现在它更清楚。我已经用一个例子更新了我的答案,它将使用AJAX请求调用某些控制器操作并将零售商ID传递给您,以便您可以更新数据库。感谢darin – 2012-01-17 07:17:32

+0

,它解决了问题!将来会再次检查问题。 :-) – 2012-01-17 07:22:48