這不是很清楚你所說的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);
}
媽的!可能是我沒有解釋清楚的東西....鏈接將打開零售商網站的新窗口....我會更新的問題,並顯示鏈接的代碼太.....誤導性非常抱歉.. .. – 2012-01-17 07:10:36
@PankajUpadhyay,好了,現在它更清楚。我已經用一個例子更新了我的答案,它將使用AJAX請求調用某些控制器操作並將零售商ID傳遞給您,以便您可以更新數據庫。感謝darin – 2012-01-17 07:17:32
,它解決了問題!將來會再次檢查問題。 :-) – 2012-01-17 07:22:48