iis添加网站ip地址,php装饰公司网站源码,阿里云域名注册入口官网,企业网站模板下载选哪家说一下情况#xff1a;
代码没问题#xff0c;能成功从数据库里查到数据#xff0c;能将数据丢给ViewBag.XXXX, 在View页面也能获取到 ViewBag.XXXX的值#xff0c;但是发布到线上后报这个错#xff1a; Microsoft.CSharp.RuntimeBinder.RuntimeBinderException: 无法对 …说一下情况
代码没问题能成功从数据库里查到数据能将数据丢给ViewBag.XXXX, 在View页面也能获取到 ViewBag.XXXX的值但是发布到线上后报这个错 Microsoft.CSharp.RuntimeBinder.RuntimeBinderException: 无法对 null 引用执行运行时绑定 点击查看大侠的分析(报错原因类似)https://blog.csdn.net/catshitone/article/details/99718151 就这样实体直接就没了加了 ViewBag.XXXX ! null 的判断都没用页面直接蹦
无法对 null 引用执行运行时绑定估计是.net6.0的bug不是我的问题 .... 嗯嗯...
所以我认为 ViewBag.XXXX 和 ViewDate[XXXX] 这样传递 实体数据 不是很靠谱
传递简单的 int还有string的值的问题还不大传递复杂实体的话靠 dynamic 类型去编译
估计会找不到他的对应的实体类Class .... 导致 实体数据不为空但是找不到实体里的属性值 ... 还是老老实实的用 View去传递实体
Controler public ActionResult TaskEdit(){string TaskID HttpContext.Request[TaskID] null ? : HttpContext.Request[TaskID].ToString();//url参数PMP_Task Task taskBLL.GetTask(TaskID);//一个实体数据不为空 ViewBag.RoleUsers roleBLL.GetRoleUsers();//一个实体Listreturn View(Task);//传递实体值} View model XrErp.Model.PMP_Task //指定传递来的实体值的类型
using XrErp.Model
{Layout null;
}html
body!-------直接用Model 作为实体值来用 -----------select idTeamMember classmy-css multiplemultiple{if (ViewBag.RoleUsers ! null ViewBag.RoleUsers.Count 0){for (int i 0; i ViewBag.RoleUsers.Count; i){if (Model ! null Model.TeamMember.Contains(ViewBag.RoleUsers[i].Username)){option valueViewBag.RoleUsers[i].UserID selectedViewBag.RoleUsers[i].Username/option}else{option valueViewBag.RoleUsers[i].UserIDViewBag.RoleUsers[i].Username/option}}}}
/selectinput typenumber idManHour placeholder0.0 valueModel.ManHour /input typedate idTaskStartDate valueModel.TaskStartDate.ToString(yyyy-MM-dd)//body
/html 这样就不会报
Microsoft.CSharp.RuntimeBinder.RuntimeBinderException: 无法对 null 引用执行运行时绑定
的错了 本解决方法参考于https://www.cnblogs.com/objectnull/p/9240160.html
另外注意Model的M大小写https://blog.csdn.net/foren_whb/article/details/80665438 声明类型的时候用小m{model}调用的时候用大M{Model}