Jam*_*mes 6 asp.net-mvc jquery json
我正在通过研究包括SubSonic和jQuery在内的测试项目来学习asp.net mvc.
我遇到的问题是每次我想要返回的东西多于一个简单的字符串,比如一个Json对象,我会受到阻碍,因为回调似乎没有触发,或者作为失败返回.
我获取数据库中作业列表的方法:
[AcceptVerbs(HttpVerbs.Get)]
public JsonResult GetAllJobs()
{
var db = new JamesTestDB();
var jobs = from job in db.Jobs
select job;
return Json(jobs.ToList());
}
Run Code Online (Sandbox Code Playgroud)
我的JavaScript称之为:
function updateJobList() {
var url = '<%= Url.Action("GetAllJobs", "Home") %>';
$.getJSON(url, null, function(data, status) { alert("Success!"); });
}
Run Code Online (Sandbox Code Playgroud)
我使用内联函数和外部函数定义来获取成功和失败的get,post和getJSON.似乎没有什么工作,但代码肯定是在进行Ajax调用,只是没有触发回调.
Nex*_*xas 12
这是解决方案!!
所以事实证明我一年多来一直在做同样的事情:
public JsonResult SaveData(string userID, string content)
{
var result = new { Message = "Success!!" };
return Json(result);
}
Run Code Online (Sandbox Code Playgroud)
所以,我开始以同样的方式在我启动的新项目上这样做.嗯,区别?第一个是MVC 1.0,我的新版本是MVC 2.0.那有什么区别?您必须允许JSON GET请求:
public JsonResult SaveData(string userID, string content)
{
var result = new { Message = "Success!!" };
return Json(result, JsonRequestBehavior.AllowGet);
}
Run Code Online (Sandbox Code Playgroud)
jQuery 有一个错误处理程序,如果你想看到错误,你必须绑定它:
$("#msg").ajaxError(function(event, request, settings){
$(this).append("<li>Error requesting page " + settings.url + "</li>");
});
Run Code Online (Sandbox Code Playgroud)