我有这个ajax电话。这是我第一次遇到这个问题。首先,我的行动的断点没有被击中。其次,正在执行成功功能。第三,我的storeList / data的值是整个身体内容的整个代码。这可能是因为我找不到行动造成的。
$.ajax({
type: 'POST',
url: '/reports/GetStoreFranchiseList?franchiseId=' + franchiseId,
success: function (storeList) {
console.log(storeList);
var appendStr = "<li><a href='#' onclick=changeStore('All', 'All')>All</a></li>";
// $.each(storeList, function (k, v) {
// console.log(v);
// appendStr += "<li><a href='#' onclick=changeStore('" + v.Id + "','" + v.StoreName + "')>" + v.StoreName + "</a></li>";
// });
console.log(appendStr);
$(".rptStoreDdl").html(appendStr);
$("#rptStoreDdlDv").removeClass().addClass("btn-group");
}
});
当我尝试取消注释每个函数时,我收到此错误:Uncaught TypeError: Cannot use 'in' operator to search for '21748' in #<error>
显然因为数据错误。任何想法家伙?谢谢!
编辑:
尝试通过fiddler访问它,我得到了这个:/Error/NotFound?aspxerrorpath=/reports/GetStoreFranchiseList
这会触发我找不到的客户错误。我真的不确定为什么我的行动没有找到。
控制器操作:
[InPrivate]
public class ReportsController : Controller
{
[HttpGet]
public JsonResult GetStoreFranchiseList(string franchiseId)
{
var data = new List<Store>();
if(WebUser.Franchisees != null && WebUser.Franchisees.Count() > 0)
{
data = WebUser.Franchisees.FirstOrDefault(a => a.Id == franchiseId).Stores;
}
return Json(data, JsonRequestBehavior.AllowGet);
}
}
答案 0 :(得分:1)
很可能会提出一个无声的例外。我也遇到了同样的问题。值得注意的是,并非所有异常都会触发运行时错误,从浏览器/客户端可能看起来已经返回了有效的返回类型。在我的例子中,我能够使用Visual Studio的Intellitrace功能来嗅出以下静默异常:
“JSON请求太大而无法反序列化”
这给了我通过其他Stack Overflow response
解决问题所需的线索我建议尝试使用Intellitrace附带的Visual Studio的Ultimate版本来查看是否有类似的异常干扰了您的服务器端代码,并最终欺骗客户端认为返回了有效的响应。
祝你好运
答案 1 :(得分:0)
尝试像这样指定网址:
url: '../Reports/GetStoreFranchiseList?franchiseId=' + franchiseId,
OR
url: '@Url.Action("GetStoreFranchiseList","Reports")' + '?franchiseId=' + franchiseId,