Не совсем понятно, что вы называете appropriate data
в своем вопросе, но разве недостаточно идентификатора розничной торговли?Вам не нужен 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>
}
, а внутри соответствующего действия контроллера вы можете использовать этот идентификатор продавца, чтобы делать то, что вы намеревались сделать:
public ActionResult SomeAction(int retailerId)
{
...
}
ОБНОВЛЕНИЕ:
Как только появляется возможность использовать AJAX-запрос для отправки идентификатора продавца в действие вашего контроллера при нажатии на ссылку.Для этого вам понадобится идентификатор продавца.Вы можете использовать атрибут data5 * HTML5 на привязке:
<a href="retailerURL.com" target ="_blank" class="retailer" data-retid="123" data-url="@Url.Action("SomeAction")">anchor-Link-retailer3</a>
, а затем использовать jQuery, чтобы подписаться на событие click всех этих ссылок и отправить запрос AJAX:
$(function() {
$('.retailer').click(function() {
var url = $(this).data('url');
var retailerId = $(this).data('retid');
$.post(url, { retailerId: retailerId });
});
});
ОБНОВЛЕНИЕ 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);
}