您可以将此代码放在一个独立的 JavaScript 文件中,然后从您的视图中引用它。例如:
<script type="text/javascript" src="~/scripts/myscript.js"></script>
在脚本内部执行 AJAX 调用:
$.ajax({
type : "GET",
dataType : "json",
url : "/SomeController/SomeAction",
success: function(data) {
alert(data);
}
});
您调用的控制器操作显然应该返回一个JsonResult:
public ActionResult SomeAction()
{
var model = new
{
Foo = "Bar",
}
return Json(model, JsonRequestBehavior.AllowGet);
}
这个 JavaScript 还可以进一步改善。您可能会注意到控制器操作的硬编码 URL:
url : "/SomeController/SomeAction",
这并不好,因为您的url的模式由路由控制,如果这些路由发生变化,您还必须修改您的javascript。另外,如果您在IIS中的虚拟目录中部署应用程序,则此路径将不再考虑虚拟目录名称。
因此,建议始终使用URL助手生成到控制器操作的URL。例如,您可以将其存储在视图中的全局javascript变量中:
<script type="text/javascript">
var myActionUrl = '@Url.Action("SomeAction", "SomeController")';
</script>
<script type="text/javascript" src="~/scripts/myscript.js"></script>
然后在您的JavaScript文件中使用这个变量:
$.ajax({
type : "GET",
dataType : "json",
url : myActionUrl,
success: function(data) {
alert(data);
}
});
var model = new {}
这是什么意思,因为我是新手...请告诉我 @Darin Dimitrov - user7918630