Skip to content Skip to sidebar Skip to footer

Show "null" For Null Values In Asp.net Mvc Displayfor Html Helper

Is there a way to get an @Html.DisplayFor value to show 'NULL' in the view if the value of the model item is null? Here's an example of an item in my Details view that I'm working

Solution 1:

yes, I would recommend using the following data annotation with a nullable datetime field in your codefirst model :

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

then in your view :

@Html.DisplayFor(x => x.last_connection)

Solution 2:

Display a string e.g. "-" in place of null values show via the "DisplayFor" standard helper using a helper extension, i.e. "DisplayForNull"

1. Create Folder "Helpers" and add a new controller "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;

namespaceWIPRO.Helpers
{
    publicstaticclassHelpers
    {
        publicstatic 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. In your view

@using WIPRO.Helpers

@Html.DisplayForNull(model => model.CompanyOwnerPersonName)

in place of

@Html.DisplayFor(model => model.CompanyOwnerPersonName)

Hope it helps ;-)

Post a Comment for "Show "null" For Null Values In Asp.net Mvc Displayfor Html Helper"