Existe-t-il un moyen d'obtenir une valeur @Html.DisplayFor
pour afficher "NULL" dans la vue si la valeur de l'élément de modèle est null
?
Voici un exemple d'élément de la vue Détails sur lequel je travaille actuellement. À l'heure actuelle, si rien n'est affiché si la valeur de Description est null
.
<div class="display-field">
@Html.DisplayFor(model => model.Description)
</div>
oui, je vous recommanderais d'utiliser l'annotation de données suivante avec un champ date/heure nullable dans votre modèle codefirst:
[Display(Name = "Last connection")]
[DisplayFormat(NullDisplayText = "Never connected")]
public DateTime? last_connection { get; set; }
alors à votre avis:
@Html.DisplayFor(x => x.last_connection)
Afficher une chaîne, par exemple "-" à la place des valeurs nulles affichées via l'assistant standard "DisplayFor" à l'aide d'une extension d'assistance, c'est-à-dire "DisplayForNull"
1. Créer un dossier "Helpers" et ajouter un nouveau contrôleur "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. À votre avis
@using WIPRO.Helpers
@Html.DisplayForNull(model => model.CompanyOwnerPersonName)
au lieu de
@Html.DisplayFor(model => model.CompanyOwnerPersonName)
J'espère que ça aide ;-)