jquery加载对控制器的调用并填充div元素
我的index.cshtml中有一个div元素,id为#myresults,我试图通过调用mvc控制器方法通过jquery.load方法加载数据。 但我无法获得正确的语法。
我也将自定义对象作为参数传递。
var mycustomObject = { obj1:value1, obj2:value2, .. }
以下不起作用…(我已尝试过其他组合……我找不到服务器错误)
$("#myresults").load ('@Url.Action("MyActionMethod","Home")',mycustomObject);
而以下工作
$("#myresults").load('/Home/MyActionMethod', mycustomObject);
虽然最后一个语句有效,但它只适用于localhost。
什么是使用Url.Action进行jquery加载的正确语法?
@Url.Action()
将始终生成正确的url,因此如果获得404,则表示此代码位于外部脚本文件中。 剃刀代码不会在外部脚本中执行,因此您的url将成为文本“@ Url.Action(”MyActionMethod“,”Home“)”。
解决这个问题的选择包括
- 将代码移动到视图或其布局中
- 在视图中声明一个全局变量 –
var url = '@Url.Action("MyActionMethod","Home")';
在外部文件中使用$("#myresults").load(url, mycustomObject);
-
将url分配给元素作为
data-*
属性,例如,并在外部文件中
$('#loadSomething').click(function() { var url = $(this).data('url'); $("#myresults").load(url, mycustomObject); });
将div元素定义为:
并在您的方法中进行ajax调用: