3
有沒有更好的方法來編寫razor cshtml,它檢查嵌套對象爲null,所以如果容器爲空,它不會在容器對象上拋出空的異常錯誤。例如:語法糖來檢查剃刀空值
page.cshtml
Hello @obj1.obj2.prop3
將拋出錯誤,如果OBJ1爲空或obj1.prop3is空,但
Hello @Html.DisplayFor(m => obj1.obj2.prop3)
可以檢查空的OBJ1或obj1.obj2所以不會丟錯
Hello @(obj1 == null? "" : (obj1.obj2 == null? "" : obj1.obj2.prop3))
太長了
考慮不傳遞null作爲模特屬性 - 往往是可以有「空「對象(空字符串/所有非ref屬性的默認值),可以讓你避免所有這些空檢查... – 2013-02-20 08:29:26
我認爲這是很短的,你正在努力完成;)你有?運算符,但這不適用於你的情況,因爲你需要訪問更多的屬性。 (Obj ??「」給出obj或者如果爲null「」) – JMan 2013-02-20 08:29:56