在 MVC 显示中显示空值"NULL" ASP.NET 对于 HTML 帮助程序



如果模型项的值为null,是否有方法获得@Html.DisplayFor值以在视图中显示"NULL" ?

下面是我目前正在处理的Details视图中的一个项目的示例。如果"Description"的值为"null",此时if不显示任何内容。

<div class="display-field">
    @Html.DisplayFor(model => model.Description)
</div>

是的,我建议在代码优先模型中使用以下带有可空datetime字段的数据注释:

[Display(Name = "Last connection")]
[DisplayFormat(NullDisplayText = "Never connected")]
public DateTime? last_connection { get; set; }

then in your view:

@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)

希望能有所帮助;-)

相关内容

  • 没有找到相关文章

最新更新