Javascript 使用模型中的值将Ajax.ActionLink应用于DIV
这方面已经有一些类似的问题,但它们不包括使用模型中的值作为参数发送给控制器 在Razor视图中考虑以下代码:Javascript 使用模型中的值将Ajax.ActionLink应用于DIV,javascript,c#,ajax,asp.net-mvc,razor,Javascript,C#,Ajax,Asp.net Mvc,Razor,这方面已经有一些类似的问题,但它们不包括使用模型中的值作为参数发送给控制器 在Razor视图中考虑以下代码: @foreach (var item in Model) { <div class="itemDisplay"> <img src="~/Images/@item.DisplayImage" /> @Ajax.ActionLink($"Item {item.Id}", "_ItemDisplay", new { id =
@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>
}
因此,我的问题是,使用
ASP.Net MVC
,如何从DIV标记发出AJAX调用并将相关ID传递给控制器?解决方案是通过将变量连接到URL生成的字符串来构建URL。操作:
'@Url.Action("_ItemDisplay")' + '/' + myVar
排序答案是否定的。Ajax.ActionLink()
是一种生成
标记的方法。但是,当您可以使用$.Ajax()
方法时,为什么要使用Ajax.ActionLink()
(它现在实际上已经过时了-asp.net核心mvc中的团队不支持它)。Ajax()
方法给您带来了更大的灵活性。但是不清楚您想在这里做什么-第一个代码片段中的代码使用Ajax.ActionLink()
根据服务器端值item.Id
生成url-该代码中没有使用javascript变量。如果您确实希望在$.ajax()
方法中使用javascript变量,那么它只是var url='@url.Action(“\u ItemDisplay”)'+'/'+yourVariable
(假设使用默认路由),或var url='@url.Action(“\u itemsdisplay”)'+'?id='+yourVariable代码> @ Stephen Thanks,我没有考虑以您所描述的方式使用URL.Action。这完美地解决了我的问题。若你们想把它输入到一个答案中,我会接受的。这个问题被稍微编辑了一下以回应关闭标志。仍然不清楚你们的javascrpt变量来自哪里
'@Url.Action("_ItemDisplay")' + '/' + myVar