Sam*_*IAm 0 c# asp.net-mvc razor
我有一个对象,比如说 Employee ,内容如下:
Employee() {
int id;
string name;
}
Run Code Online (Sandbox Code Playgroud)
在我看来,
我目前做
<input type="text" name="employeeName" id="employeeName" readonly="true" value="@Model.Employee.name"/>
Run Code Online (Sandbox Code Playgroud)
但是,在某些情况下 Employee 值将为空,这会给我一个错误,空引用错误。如果它为空,我应该进行内联检查以返回空字符串还是有更好的方法?
@HTML.TextboxFor()在这种情况下,该方法会更好吗?
使用Html.TextBoxFor可以解决这个问题,是的:
@Html.TextBoxFor(i => i.Employee.Name)
Run Code Online (Sandbox Code Playgroud)
这不会导致空问题。您还可以将您的方法与空检查一起使用,因此您的假设是正确的:
<input type="text" name="employeeName" id="employeeName" readonly="true"
value="@(Model.Employee != null ? Model.Employee.name : "")"/>
Run Code Online (Sandbox Code Playgroud)
这是因为您直接使用对象,而TextBoxFor评估表达式树并适当处理空值。