我有以下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代码确实具有正确的字符串值。
答案 0 :(得分:0)
这些评论为您提供了一些建议,这些建议在放在一起时会为您提供所需的行为。
首先,您可以使用@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);
}
});
答案 1 :(得分:0)
从参数名称中移除逗号" 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);
}
});
答案 2 :(得分:0)
将网址更改为:
url: "../Client/ShowClient"