Dim*_*ima 6 javascript asp.net asp.net-mvc json
我开始学习ASP.NET MVC 4,做了一些小事......
在我的索引页面中,我想获取JSON包含一些数据的文件并将其显示在主页面上.
简单地说HTML,JavaScript我使用ajax来处理GET/POST JSON数据
<script>
$.ajax({
type : "GET",
dataType : "json",
url : "www.site.com",
success: function(data){
alert(data);
}
});
</script>
Run Code Online (Sandbox Code Playgroud)
我创建了MVC 4项目,我应该在哪里调用jQuery $.ajax命令来获取数据并显示它?
我必须在视图中调用它吗?和jQuery语法?
我很乐意看到任何一个例子
Dar*_*rov 13
您可以将其放在一个单独的javascript文件中,该文件可以从您的视图中引用.例如:
<script type="text/javascript" src="~/scripts/myscript.js"></script>
Run Code Online (Sandbox Code Playgroud)
在脚本内部进行AJAX调用:
$.ajax({
type : "GET",
dataType : "json",
url : "/SomeController/SomeAction",
success: function(data) {
alert(data);
}
});
Run Code Online (Sandbox Code Playgroud)
您正在调用的控制器操作显然应该返回一个JsonResult:
public ActionResult SomeAction()
{
var model = new
{
Foo = "Bar",
}
return Json(model, JsonRequestBehavior.AllowGet);
}
Run Code Online (Sandbox Code Playgroud)
这个javascript还有待进一步改进.您可能会注意到控制器操作的硬编码URL:
url : "/SomeController/SomeAction",
Run Code Online (Sandbox Code Playgroud)
这不好,因为你的网址模式由路由管理,如果这些路由发生变化,你还需要修改你的javascript.此外,如果将应用程序部署在IIS中的虚拟目录中,则此路径不再考虑虚拟目录名称.
因此,始终建议使用url helper生成控制器操作的url.例如,您可以将其存储到视图中的全局javascript变量中:
<script type="text/javascript">
var myActionUrl = '@Url.Action("SomeAction", "SomeController")';
</script>
<script type="text/javascript" src="~/scripts/myscript.js"></script>
Run Code Online (Sandbox Code Playgroud)
然后在你的javascript文件中使用这个变量:
$.ajax({
type : "GET",
dataType : "json",
url : myActionUrl,
success: function(data) {
alert(data);
}
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
24521 次 |
| 最近记录: |