在VS2022 中,使用C# 编写程序,选创建webservices 操作数据库,新建model类,最后webservice返回model类的集合
再创建asp.net mvc Controller中接收webservices 返回值转成JSON 发给前台进行操作,都一切正常,
public JsonResult ObtainMzsfmxK(string jssjh)
{
PDHospWebServicesSoapClient mzsfmxkwebsvr = new PDHospWebServicesSoapClient();
var mzbrcfmxJson = mzsfmxkwebsvr.SearchMzsfmxk(jssjh);
return Json(mzbrcfmxJson,JsonRequestBehavior.AllowGet);
}
但是在webservics中model类新增几个字段 例如
{
public string Lrrq { get; set; }
public string Hzxm { get; set; }
public string Ksdm { get; set; }
public string Ksmc { get; set; }
public string Ysdm { get; set; }
public string Ysmc { get; set; }
}
新增若干字段
public class MZSFMXK
{
public string Lrrq { get; set; }
public string Hzxm { get; set; }
public string Ksdm { get; set; }
public string Ksmc { get; set; }
public string Ysdm { get; set; }
public string Ysmc { get; set; }
** public string Ybdm { get; set; }
public string Ybsm { get; set; **}
}
无论怎样,后加的2个字段,不管加多少个,也试过去掉之前的字段,无论怎样后加的字段就是不能转JSON,后调试发现后加的字段在ExtensionData中
百思不得其解,webservices正常的。就是转JSON时,后加的字段不能转成JSON。 难道第一次转成JSON数据后,就把键值对就定死了,不能改变了!?请了解的大拿, 指点一二,不胜感激!
已经找问题所在,可正常显示了。原来不是转换JSON的原因,是webservice调用的问题。
var mzbrcfmxJson = mzsfmxkwebsvr.SearchMzsfmxk(jssjh);
mzbrcfmxJson是MZSFMXK类,是webservice里类,在webservice中新增属性,重新生成后并没刷新调用webservice的程序项目里设置;即服务引用
你没有重建所有
或者你的电脑系统日期时间紊乱
问题
在C#中推荐的属性命名方式是“帕斯卡命名法”【首字母大写】但是在前端推荐命名方式为“驼峰命名法”【首字母小写】,这样如果直接序列化C#对象,返回的属性就是大写的了