ASP.NET MVC中通过Ajax获取ViewModel数据为空的问题求助
问题排查与解决
嘿,我一眼就发现问题所在啦!你前端Ajax访问返回数据的方式不对,导致拿不到正确的CustomerNo值。
核心问题:属性路径不匹配
你后端返回的JSON结构是嵌套的:
{"OrdreDetailsSingleLines":{"OrdreNo":"111111","CustomerNo":"22222","Ordredate":"/Date(1525816800000)/"}}
可以看到CustomerNo是包裹在OrdreDetailsSingleLines对象里面的,但你前端的success函数里直接写了result.CustomerNo——这相当于去外层对象找CustomerNo,而外层根本没有这个属性,自然只能拿到空字符串。
修复方案
把Ajax的success函数代码改成这样:
success: function (result) { // 可选:先打印完整结果,方便后续调试 console.log(result); // 正确访问嵌套的属性 alert(result.OrdreDetailsSingleLines.CustomerNo); }
额外调试小技巧
- 以后遇到接口返回数据异常时,先通过
console.log(result)在浏览器控制台查看完整的JSON结构,能快速定位属性路径这类问题。 - 也可以确认下
window.localStorage.getItem("pgm")拿到的OrdreNo值是否正确,避免因为参数错误导致后端返回空数据(不过你已经给出了正确的JSON输出,这一步当前可以忽略)。
内容的提问来源于stack exchange,提问作者7 seconds
相关产品推荐
相关产品推荐

