[英]How to check null object in razor view editor template
在我的ViewModel中,我创建了一个Object类型的属性,并从控制器中传递了该对象类型属性的值。 现在,我已经创建了一个编辑器模板来处理该对象类型。 这是我的代码:
<div class="form-group">
@Html.EditorFor(x => Model.testProp)
</div>
基于值类型,此编辑器模板正在调用不同类型的编辑器模板(String,Date,int)。 现在如何使用编辑器模板处理null / empty字符串? 如果我的Model.testProp为null,那么如何调用返回空TextField的编辑器模板?
您是否尝试过进行null
检查并基于此选择要使用的模板?
像这样:
<div class="form-group">
@if (Model.testProp != null)
{
// If not null; Use the correct template, based on the type
@Html.EditorFor(x => x.testProp)
}
else
{
// Otherwise print an empty text box
@Html.TextBoxFor(x => x.testProp)
}
</div>
您还可以在if
语句中使用!string.IsNullOrWhiteSpace(Model.testProp)
来检查空白string
s。
这样一来,当testProp
为 null
,一个<input type="text"...>
将被创建,使用正确的字段名称时您匹配POST
一些值回控制器。
另外,我不知道它是否有任何区别,但是我通常将谓词表达式声明为x => x.testProp
我在上面的示例中使用了它。
希望这可以帮助! :)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.