【问题标题】:Not getting on Ajax Success from controller JsonResult method没有从控制器 JsonResult 方法获得 Ajax 成功
【发布时间】:2017-06-06 13:47:31
【问题描述】:
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

【问题讨论】:

  • 你试过success方法中的alert吗?
  • 应该是.value(data); 而不是.value(data.NxtSort);

标签: json ajax asp.net-mvc


【解决方案1】:

"没有调用ajax成功和错误函数。但是控制器 返回一个值。”

这种情况极不可能是真的。如果控制器正在返回某些内容,那么其中一个函数运行。他们不会运行的唯一方法是,如果 ajax 调用在实际执行之前失败,出于其他原因。您会在浏览器的开发者工具中看到错误信息。

要验证这一点,您可以检查浏览器的网络选项卡(在开发人员工具中,在大多数浏览器上按 F12)并观察 ajax 调用以查看返回到浏览器的 HTTP 响应。如果是“200”,那么“成功”肯定会运行。如果是其他任何东西,“错误”将运行。您可以在“success”函数的开始处放置一个“alert”命令来证明它运行。

还要检查浏览器控制台中的任何错误。我预测 data.NxtSort 将不存在于 JavaScript 上下文中,因为正如您所提到的,您只从控制器返回一个整数值,而不是可能包含具有该名称的属性的对象。 “成功”函数中的data 将只是一个值为1 的整数。这意味着当您尝试访问不存在的 nxtSort 属性时,几乎可以肯定会在控制台中发生并显示“未定义”错误。

这意味着,与您的陈述相反,“成功”调用,但随后它崩溃而没有输出任何内容。

简单替换

$("#Order").data("kendoNumericTextBox").value(data.NxtSort); 

 $("#Order").data("kendoNumericTextBox").value(data); 

应该可以解决你的问题。

以后如果你学会使用浏览器的开发者工具来调试你的代码,你可以避免这样的简单问题。尤其是 Chrome 和 Firefox 中的工具非常强大且信息丰富。

【讨论】:

    【解决方案2】:

    试试这个

    [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);  
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-01-06
      • 1970-01-01
      • 2011-08-19
      • 1970-01-01
      • 2021-02-22
      • 2019-04-22
      • 1970-01-01
      相关资源
      最近更新 更多