モデルアイテムの値がnull
の場合に、ビューに "NULL"を表示する@Html.DisplayFor
値を取得する方法はありますか?
これは、現在作業している詳細ビューのアイテムの例です。現在、説明の値がnull
の場合、何も表示されません。
<div class="display-field">
@Html.DisplayFor(model => model.Description)
</div>
はい、次のデータアノテーションをcodefirstモデルでnull可能な日時フィールドとともに使用することをお勧めします。
[Display(Name = "Last connection")]
[DisplayFormat(NullDisplayText = "Never connected")]
public DateTime? last_connection { get; set; }
次にあなたの見解では:
@Html.DisplayFor(x => x.last_connection)
文字列を表示します。 null値の代わりの「-」は、ヘルパー拡張を使用する「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)
それが役に立てば幸い ;-)