【发布时间】:2015-05-19 01:04:18
【问题描述】:
我有一个对象,比如 Employee,如下:
Employee() {
int id;
string name;
}
在我看来,
我现在有
<input type="text" name="employeeName" id="employeeName" readonly="true" value="@Model.Employee.name"/>
但是,在某些情况下,Employee 值将为 null,这会给我一个错误,即 null 引用错误。如果它为空,我应该进行内联检查以返回一个空字符串还是有更好的方法?
@HTML.TextboxFor() 方法在这种情况下会更好吗?
【问题讨论】:
-
您为什么要手动创建一个带有
name="employeeName"的文本框,它与您的模型没有关系并且不会在回发时绑定(您的模型没有名为employeeName的属性)?使用@Html.TextBoxFor(m => m.name, new { readonly = "readonly" }) -
哦,我只是临时编造了以上内容。但这只是一个例子。
-
您使用 MVC,因此请充分利用它的功能。始终使用强类型助手绑定到您的模型属性:)
-
另外一点:您还可以声明式地说明如何显示空值:stackoverflow.com/a/17273132/49251。
-
@DWright,
DisplayFormat.NullDisplayText仅受@Html.DisplayFor()尊重(而不是TextForFor()或EditorFor())
标签: c# asp.net-mvc razor