我有一个非常简单的ajax请求,我要发送到服务器以获取一些数据并填满我的编辑模式。但由于某种原因,它不断返回错误,我无法弄清楚原因。我已经调试了服务器端,参数正确进入并且所有数据都已正确找到并返回,但仍然是错误。
这是我的代码,所以有人可能会看到我在这里缺少的东西。
请求:
function EditNorm(id) {
$.ajax({
type: "POST",
url: "@Url.Action("GetNormViewModel")",
dataType: 'json',
contentType: 'application/json; charset=utf-8',
data: JSON.stringify({id : id}),
cache: false,
success: function(data) {
FillFormForEditing(data.nvm);
},
error: function() {
alert("Error On EditNorm function");
}
});
}
服务器端:
public JsonResult GetNormViewModel(int id)
{
var nvm = new NormViewModel {Norm = db.Norms.Find(id), Materials = db.Materials.ToList()};
return Json(new {nvm = nvm}, JsonRequestBehavior.AllowGet);
}
答案 0 :(得分:0)
首先:您在javascript上使用POST方法,而控制器接受Get,将其添加到您的操作中:
[HttpPost]
public JsonResult GetNormViewModel(int id)
{
return Json(new { ... });
}
其次:什么是db
是LinqToSQL / Entity Framework上下文?如果是这样,请确保在返回数据后不会执行对数据上下文的调用。 (即改变了你的行动并简单地返回return Json(new { nvm = "test" });
和console.log/alert
以确保你得到了结果。这将告诉你它的模型由于某些后期绑定而在返回时失败。 / p>