这不是很清楚你所说的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