通过jquery ajax传递数据时出错

时间:2013-04-20 08:35:35

标签: asp.net-mvc jquery

我有一个非常简单的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);
    }

1 个答案:

答案 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>