您可以将它放在一个单独的 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);
}
});