jquery-1.7.1突然报错:Uncaught TypeError: Cannot read p

2020-04-29 13:04发布

问题:

jquery-1.7.1.js 报错:Uncaught TypeError: Cannot read property 'replace' of undefined
一、运行环境

1.1 Visual Studio Community 2019;

1.2 SQL Server 2019;

1.3 Windows 10 专业版;

二、问题描述

2.1 基本MVC项目;

2.2 View中发起post请求之后,Controller中可以正常获取到数据库的数据,但是Controller调用jquery中相关方法返回的Json数据无法再次回传到View中;

2.3 问题出现后,以前备份的代码全都显示同样的错误;

2.4 替换jquery、重启电脑后,错误没有改变。

三、关键代码段

View:

var id = rows[0].ID;
$.post("/UserInfo/ShowEditInfo", { "id": id }, function (data) {
 $("#txtUName").val(data.UName);
 $("#txtUPwd").val(data.UPwd);
 $("#txtRemark").val(data.Remark);
 $("#txtSort").val(data.Sort);
 $("#txtSubTime").val(ChangeDateFormat(data.SubTime));
 $("#txtDelFlag").val(data.DelFlag);
 $("#txtId").val(data.ID);
});

Controller:

public ActionResult ShowEditInfo()
{
   int id = int.Parse(Request["id"]);
   var userInfo = UserInfoService.LoadEntities(u => u.ID == id).FirstOrDefault();
   return Json(userInfo, JsonRequestBehavior.AllowGet);
}
四、代码调试和报错截图
  1. Controller中可以获取到userInfo信息,调用jquery返回Json数据时失败,错误截图如下图1;
  2. 出现这个问题后,以前备份的代码也全部报同样的错误。

​ 图1 Web端报错信息

回答1:

看起來data裡的屬性全都是undefined
建議你確認API回傳內容及屬性名稱
也可以在瀏覽器開發者工具的網路頁籤中,看看回傳的數據格式



回答2:

1、 检查下SubTime 是不是 为null
2、 检查返回json 有没有SubTime 属性, 大小写, 是不是一样。