美容營銷型網(wǎng)站百度seo服務(wù)方案
說一下情況:
代碼沒問題,能成功從數(shù)據(jù)庫里查到數(shù)據(jù),能將數(shù)據(jù)丟給ViewBag.XXXX, 在View頁面也能獲取到 ViewBag.XXXX的值,但是發(fā)布到線上后報(bào)這個(gè)錯(cuò):
Microsoft.CSharp.RuntimeBinder.RuntimeBinderException: 無法對(duì) null 引用執(zhí)行運(yùn)行時(shí)綁定
點(diǎn)擊查看大俠的分析(報(bào)錯(cuò)原因類似):https://blog.csdn.net/catshitone/article/details/99718151
就這樣實(shí)體直接就沒了!加了 ViewBag.XXXX != null 的判斷都沒用,頁面直接蹦,
無法對(duì) null 引用執(zhí)行運(yùn)行時(shí)綁定,估計(jì)是.net6.0的bug,不是我的問題?....? 嗯嗯...
所以我認(rèn)為 ViewBag.XXXX 和 ViewDate["XXXX"] 這樣傳遞 實(shí)體數(shù)據(jù)?不是很靠譜,
傳遞簡(jiǎn)單的 int還有string的值的問題還不大,傳遞復(fù)雜實(shí)體的話,靠?dynamic 類型去編譯,
估計(jì)會(huì)找不到他的對(duì)應(yīng)的實(shí)體類Class .... 導(dǎo)致 實(shí)體數(shù)據(jù)不為空,但是找不到實(shí)體里的屬性值 ...
還是老老實(shí)實(shí)的用 View去傳遞實(shí)體:
Controler:
public ActionResult TaskEdit(){string TaskID = HttpContext.Request["TaskID"] == null ? "" : HttpContext.Request["TaskID"].ToString();//url參數(shù)PMP_Task Task = taskBLL.GetTask(TaskID);//一個(gè)實(shí)體數(shù)據(jù),不為空 ViewBag.RoleUsers = roleBLL.GetRoleUsers();//一個(gè)實(shí)體Listreturn View(Task);//傳遞實(shí)體值}
View:
@model XrErp.Model.PMP_Task //指定傳遞來的實(shí)體值的類型
@using XrErp.Model
@{Layout = null;
}<html>
<body><!-------直接用:Model 作為實(shí)體值來用 -----------><select id="TeamMember" class="my-css" multiple="multiple">@{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 value="@ViewBag.RoleUsers[i].UserID" selected>@ViewBag.RoleUsers[i].Username</option>}else{<option value="@ViewBag.RoleUsers[i].UserID">@ViewBag.RoleUsers[i].Username</option>}}}}
</select><input type="number" id="ManHour" placeholder="0.0" value="@Model.ManHour" /><input type="date" id="TaskStartDate" value="@Model.TaskStartDate.ToString("yyyy-MM-dd")"/></body>
</html>
這樣就不會(huì)報(bào):
Microsoft.CSharp.RuntimeBinder.RuntimeBinderException: 無法對(duì) null 引用執(zhí)行運(yùn)行時(shí)綁定
的錯(cuò)了
本解決方法參考于:https://www.cnblogs.com/objectnull/p/9240160.html
另外注意Model的M大小寫:https://blog.csdn.net/foren_whb/article/details/80665438
?(聲明類型的時(shí)候用小m{@model},調(diào)用的時(shí)候用大M{@Model})