@Ajax.ActionLink($"Item {item.Id}">
已经有一些类似的问题,但它们没有涵盖使用模型中的值作为参数发送到控制器。
Make DIV containing AJAX ActionLink clickable
在Razor视图中考虑以下代码:
@foreach (var item in Model)
{
<div class="itemDisplay">
<img src="~/Images/@item.DisplayImage" />
@Ajax.ActionLink($"Item {item.Id}", "_ItemDisplay", new { id = item.Id }, new AjaxOptions { UpdateTargetId = "itemDisplay", LoadingElementId = "ajax-loader", InsertionMode = InsertionMode.Replace, HttpMethod = "GET" }, null)
</div>
}
我试图实现的是将该ActionLink
应用于整个DIV
。
在应用任何JavaScript解决方案时的问题是,我遇到了无法在JavaScript代码中使用Razor变量的问题(因为一个是客户端,另一个是服务器端)。
例如:
function updateItemDisplay(itemId) {
$('#itemDisplay')
.click(function () {
$.ajax({
url: '@Url.Action("_ItemDisplay", new { id = *cannot use a JS variable here!* })',
type: "GET",
success: function (result) {
$('#itemDisplay').html(result);
}
});
});
};
因此,我的问题是,使用ASP.Net MVC
,我如何从DIV标记发出AJAX调用并将相关ID传递给控制器?
发布于 2019-06-07 13:37:44
解决方案很简单,就是通过将变量连接到Url.Action
生成的字符串来构建URL
'@Url.Action("_ItemDisplay")' + '/' + myVar
https://stackoverflow.com/questions/42119536
复制相似问题