我有以下将数据发送到控制器的 jquery 函数: function bound(e) { var ele = document.getElementsByClassName("e-grid")[0] ele.addEventListener('click', function (e) { if (e.target.classList.contains('e-up')) { var grid = document.getElementById('FlatGrid').ej2_instances[0]; //Grid Instance var rowObj = grid.getRowObjectFromUID(ej.base.closest(e.target, '.e-row').getAttribute('data-uid')); var data = rowObj.data; //alert(JSON.stringify(data)); var code = data.ClientCode; $.ajax({ type: "POST", url: "/Client/ShowClient", data: { "ClientCode": code }, //First item has latest ID contentType: "application/json; charset=utf-8", success: function (data) { if (data.length !== 0) { console.log(data); } }, error: function (data) { console.log(data); } }); } }); } 我的控制器方法: [HttpPost] public ActionResult ShowClient(string ClientCode) { if (ClientCode == null) { return new HttpStatusCodeResult(HttpStatusCode.BadRequest); } *action* } 但是,我为此收到了 500(内部服务器错误)错误。知道我错过了什么因为我的方法根本没有被击中。而且我可以看到 var 代码确实具有正确的字符串值。

从参数名称“ClientCode”和 contentType 中删除逗号,即可使用 $.ajax({ type: "POST", url: "/Client/ShowClient", data: { ClientCode: code }, //First item has latest ID success: function (data) { if (data.length !== 0) { console.log(data); } }, error: function (data) { console.log(data); } });

这些评论为您提供了建议的组合,将这些建议组合在一起将为您提供所需的行为。 首先,您可以使用以下方法在视图中构建 URL@Url.Action url: '@(Url.Action("ShowClient","Client"))', 接下来,对象模型没有被正确构建 data: { ClientCode: code }, 请注意键周围的最后一个引号。 最后删除 JSON 内容类型。 结果是部分代码。 $.ajax({ type: "POST", url: '@(Url.Action("ShowClient","Client"))', data: { ClientCode: code }, success: function (data) { if (data.length !== 0) { console.log(data); } }, error: function (data) { console.log(data); } });

将网址更改为: url: "../Client/ShowClient"

删除contentType: "application/json; charset=utf-8",选项

您可以尝试像数据一样直接传递代码值吗:JSON.stringify(code)

您能否提供有关 500(内部服务器错误)的更多信息?

您是否尝试过在客户端调试您的应用程序?打开你的开发者工具,在网络选项卡中查看 500 错误的内容。

尝试将您的 url 参数替换为'@Url.Action("ShowClient", "ControllerName")'. 使用您的控制器名称。