2012-01-17 64 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