Asp.net mvc 如何在MVC视图中检查空值?
我正在使用MVC和LINQtoSQL类 由于外键可以为null,我有一条记录具有f.k.null,其他记录具有值 现在我在视图中按索引视图显示它 在索引视图中,我通过编写如下代码来解决f.kAsp.net mvc 如何在MVC视图中检查空值?,asp.net-mvc,Asp.net Mvc,我正在使用MVC和LINQtoSQL类 由于外键可以为null,我有一条记录具有f.k.null,其他记录具有值 现在我在视图中按索引视图显示它 在索引视图中,我通过编写如下代码来解决f.k <%= Html.Encode(item.UserModified.UserName) %> 现在我有一个问题是“对象引用未设置” 这是因为我们在其中一个f.k.字段中有空值 因此,我是否可以编写代码来检查关联对象是否指向null或nothing?对于C#,可以使用条件运算符: <%
<%= Html.Encode(item.UserModified.UserName) %>
现在我有一个问题是“对象引用未设置”
这是因为我们在其中一个f.k.字段中有空值
因此,我是否可以编写代码来检查关联对象是否指向null或nothing?对于C#,可以使用条件运算符:
<%= Html.Encode(item.UserModified == null ? "" : item.UserModified.UserName) %>
但是,最好将UserName属性移动为项的直接子项,或者将其放入ViewData中。如果需要,可以在视图中编写任何代码,因此可以执行以下操作:
<%= Html.Encode(item.UserModified.UserName ?? string.Empty) %>
然后,您可以简单地执行以下操作:
<%= Html.SafeEncode(item.UserModified.UserName) %>
当然,如果用户修改为NULL而不是用户名,那么您将需要一些不同的逻辑。
首先考虑在您的模型中,没有名称的用户实例是否有效。如果否,那么应该在构造函数中放置一个guard子句
其次,过多重复的空检查是一种代码味道。您应该使用重构。您可以根据创建空对象 这将确保您不必到处检查Null<%= Html.SafeEncode(item.UserModified.UserName) %>