function GetSort() {
var url = '@Url.Action("GetSort", "CatMaster")';
$.ajax({
type: "POST",
url: url,
dataType: "json",
data: null,
success: function (data) {
restrctTrans = false;
$("#Order").data("kendoNumericTextBox").value(data.NxtSort);
},
error: function (data) {
alert('error');
}
});
}
这会调用一个返回JSON值的控制器方法:
public JsonResult GetSort()
{
var response = _catMaster.GetNextSort();
return Json(response.NxtSort, JsonRequestBehavior.AllowGet);
}
问题是没有调用ajax成功和错误函数。
但是控制器返回一个值。
response.NxtSort
的值为1
答案 0 :(得分:1)
试试这个
[HttPost]
public JsonResult GetSort()
{
var response = _catMaster.GetNextSort();
return Json(response.NxtSort, JsonRequestBehavior.AllowGet);
}
$("#Order").data("kendoNumericTextBox").value(data);
将其替换为上述
$("#Order").data("kendoNumericTextBox").value(data.NxtSort);
答案 1 :(得分:1)
"未调用ajax成功和错误函数。但控制器 返回一个值。"
这种情况极不可能如此。如果控制器返回了某些内容,那么其中一个函数将运行。他们不会运行的唯一方法是在实际执行之前ajax调用失败,原因是其他原因。您会在浏览器的开发人员工具中看到错误。
要验证这一点,您可以检查浏览器的网络选项卡(在开发人员工具中,在大多数浏览器上按F12)并观察ajax调用以查看返回给浏览器的HTTP响应。如果是" 200"然后"成功"肯定会运行。如果是其他任何事情,"错误"会跑。你可以发出警告"命令进入"成功"功能证明它运行。
同时检查浏览器控制台中是否有任何错误。我预测JavaScript上下文中不存在data.NxtSort
,因为正如您所提到的,您只从控制器返回一个整数值,而不是可以包含具有该名称的属性的对象。成功"成功"} function只是一个值为data
的整数。这意味着几乎可以肯定的是" undefined"当您尝试访问不存在的1
属性时,错误发生并显示在控制台中。
这意味着,与您的陈述相反,"成功" 被调用,但随后崩溃而没有输出任何内容。
简单地替换
nxtSort
与
$("#Order").data("kendoNumericTextBox").value(data.NxtSort);
应该解决你的问题。
将来,如果您学习使用浏览器的开发人员工具来调试代码,可以避免出现这样的简单问题。 Chrome和Firefox中的工具特别强大且信息丰富。