2013-04-12 8 views
19

Czy istnieje sposób, aby uzyskać wartość @Html.DisplayFor, aby wyświetlić "NULL" w widoku, jeśli wartość elementu modelu jest null?Wyświetl "NULL" dla wartości null w ASP.NET MVC DisplayFor Html Helper

Oto przykład elementu w moim widoku Szczegóły, nad którym obecnie pracuję. W tej chwili, jeśli nic nie wyświetla, jeśli wartość Opisu to null.

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

Odpowiedz

55

tak, polecam stosując następującą adnotację danych z wartości pustych pola datetime w codefirst modelu

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

następnie w widoku:

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

ta powinna być rzeczywista odpowiedź. –

+0

Zrobiłeś mój dzień. Ale jeden problem polega na tym, że wyjście jest w drugim nawiasie. –

0

wyświetlić łańcuch znaków np „-” zamiast wartości null pokazać poprzez „Displayfor” standardowego pomocnika przy użyciu rozszerzenia pomocnika, czyli „DisplayForNull”

1. Utwórz folder „pomocników” i dodać nowy kontroler „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. w widoku

@using WIPRO.Helpers 

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

zamiast

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

Nadzieja pomaga ;-)

Powiązane problemy