![](/img/trans.png)
[英]Syntactic sugar for “If this parameter is null, automatically return null”
[英]Syntactic Sugar to check null in Razor
有沒有更好的方法來編寫razor cshtml來檢查嵌套對象的null,這樣如果容器為null,它就不會在容器對象上拋出null異常錯誤。 例如 :
page.cshtml
Hello @obj1.obj2.prop3
如果obj1為null或obj1.prop3為null,則拋出錯誤,但是
Hello @Html.DisplayFor(m => obj1.obj2.prop3)
可以在obj1或obj1.obj2上檢查null,這樣就不會拋出錯誤
Hello @(obj1 == null? "" : (obj1.obj2 == null? "" : obj1.obj2.prop3))
太漫長了
您可以嘗試創建自己的html助手:
static class MyOwnHtmlHelpers
{
public static string EmptyIfNull<TModel>(this HtmlHelper<TModel> helper, Func<TModel, string> accessor)
{
try
{
var result = accessor.Invoke(helper.ViewData.Model);
return result;
}
catch(NullReferenceException)
{
return string.Empty;
}
}
}
然后像這樣使用它:
@Html.EmptyIfNull(m => obj1.obj2.prop3)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.