0

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

1 回答 1

0

首先:当您的控制器接受 Get 时,您在 javascript 上使用 POST 方法,将其添加到您的操作中:

[HttpPost]
public JsonResult GetNormViewModel(int id)
{
   return Json(new { ... });
}

其次:dbLinqToSQL/实体框架上下文是什么?如果是这样,请确保在返回数据后不调用您的数据上下文。(即更改您的操作并简单地返回return Json(new { nvm = "test" });console.log/alert确保您已获得结果。这将告诉您,由于某些后期绑定而返回时,您的模型失败了。

于 2013-04-20T11:29:44.767 回答