【问题标题】:Internal Server Error (500) when passing ajax request to controller将 ajax 请求传递给控制器​​时出现内部服务器错误 (500)
【发布时间】:2019-10-11 16:36:40
【问题描述】:

我正在尝试通过 ajax 请求将数据从我的视图传回控制器。 请求是这样的:

        $("body").on("click", "#AddProduct", function () {
            var id = $("#ProductDrop").val();
            var lookups = @Html.Raw(Json.Encode(Model.Point.Properties["Lookups"]));
            var body = $("tablePoints tbody")
            var data = JSON.stringify({ "productId": id, "lookupData": lookups });
            $.ajax({
                contentType: 'application/jsonrequest; charset=utf-8',
                dataType: 'json',
                type: 'POST',
                cache: false,
                url: '/Edit/GetProductData',
                data: data,
                success: function (html) { body.append(html) },
                failure: function () {
                    alert("failure");
                    }
            })
        });

控制器如下所示:

public ViewResult AddRow(string productId, LookupTable lookupData)
{ 
    return View("TableRow",EditPointMethods.AddEmptyProperties(productId,lookupData));
}

当我尝试传递数据时,出现内部服务器错误。但是,当我不传递数据时,它可以工作。我格式化数据的方式有问题吗?我检查过,数据不为空,并且包含我在请求时期望的所有值。

【问题讨论】:

  • 您是否尝试过将application/json 作为内容类型而不是application/jsonrequest?什么是后端平台/框架?服务器不是在注销错误吗? (应该。)LookupTable 是什么? var lookups 的值是多少?
  • 我目前在本地运行它,我在 Visual Studio 中找不到记录更详细版本错误的任何地方。查找是我在模型中用于视图的对象。我基本上需要从查找中找到一个与产品 ID 具有相同 ID 的数据元素。

标签: jquery ajax model-view-controller internal-server-error


【解决方案1】:

从粘贴的代码 sn-ps 来看,我认为您没有调用正确的 MVC 控制器操作。

url: '/Edit/GetProductData'

但控制器动作是这样的(假设控制器名称是 EditController):

public ViewResult AddRow(string productId, LookupTable lookupData)

尝试将 url 从 '/Edit/GetProductData' 更改为 '/Edit/AddRow'

另外,如果可能,请发布错误。

【讨论】:

  • 哎呀,这是以前版本的错字。我用 AddRow 替换了它,我得到了同样的信息。错误是:加载资源失败:服务器响应状态为500()。我已经尝试并未能找到更详细的错误消息。
  • 请使用 contentType: 'application/json;字符集=utf-8'。如果您能够在调试模式下达到控制器操作,则验证视图“TableRow”是否在正确的位置。
猜你喜欢
  • 2016-08-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-10-20
  • 2017-11-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多