@Html.DisplayFor
如果模型项的值为 ,有没有办法获得在视图中显示“NULL”的值null
?
这是我目前正在处理的详细信息视图中的一个项目示例。现在 if 如果 Description 的值为 ,则不显示任何内容null
。
<div class="display-field">
@Html.DisplayFor(model => model.Description)
</div>
@Html.DisplayFor
如果模型项的值为 ,有没有办法获得在视图中显示“NULL”的值null
?
这是我目前正在处理的详细信息视图中的一个项目示例。现在 if 如果 Description 的值为 ,则不显示任何内容null
。
<div class="display-field">
@Html.DisplayFor(model => model.Description)
</div>
是的,我建议在您的 codefirst 模型中使用以下带有可为空日期时间字段的数据注释:
[Display(Name = "Last connection")]
[DisplayFormat(NullDisplayText = "Never connected")]
public DateTime? last_connection { get; set; }
那么在你看来:
@Html.DisplayFor(x => x.last_connection)
显示一个字符串,例如“-”代替空值显示通过“DisplayFor”标准助手使用助手扩展,即“DisplayForNull”
1.创建文件夹“Helpers”并添加一个新的控制器“Helper.cs”
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Linq.Expressions;
using System.Web;
using System.Web.Mvc;
namespace WIPRO.Helpers
{
public static class Helpers
{
public static MvcHtmlString DisplayForNull<TModel, TValue>(this HtmlHelper<TModel> helper, Expression<Func<TModel, TValue>> expression)
{
var metaData = ModelMetadata.FromLambdaExpression(expression, helper.ViewData);
string valuetodisplay = string.Empty;
if (metaData.Model != null)
{
if (metaData.DisplayFormatString != null)
{
valuetodisplay = string.Format(metaData.DisplayFormatString, metaData.Model);
}
else
{
valuetodisplay = metaData.Model.ToString();
}
}
else
{
valuetodisplay = "-";
}
return MvcHtmlString.Create(valuetodisplay);
}
}
2. 在你看来
@using WIPRO.Helpers
@Html.DisplayForNull(model => model.CompanyOwnerPersonName)
代替
@Html.DisplayFor(model => model.CompanyOwnerPersonName)
希望能帮助到你 ;-)