このコードはMVCビューで機能しますが、この単純なことを実現するには、多くのコードのように継ぎ目があります。それをより効率的にする方法はありますか?
@if (string.IsNullOrEmpty(ViewBag.Name))
{
@:
}
else
{
@:ViewBag.Name
}
このコードはMVCビューで機能しますが、この単純なことを実現するには、多くのコードのように継ぎ目があります。それをより効率的にする方法はありますか?
@if (string.IsNullOrEmpty(ViewBag.Name))
{
@:
}
else
{
@:ViewBag.Name
}
@(ViewBag.Name ?? Html.Raw(" "))
それをより効率的にする方法はありますか?
ええ、確かに、ビューモデルを使用して:を取り除きViewBag
ます
public string FormattedName
{
get { return string.IsNullOrEmpty(this.Name) ? " " : this.Name; }
}
次に、強く型付けされたビューで:
@Html.DisplayFor(x => x.FormattedName)
または必要に応じて:
@Model.FormattedName
別の可能性は、カスタムヘルパーを作成することです。
public static class HtmlExtensions
{
public static IHtmlString Format(this HtmlHelper html, string data)
{
if (string.IsNullOrEmpty(data))
{
return new HtmlString(" ");
}
return html.Encode(name);
}
}
そしてあなたの見解では:
@Html.Format(Model.Name)
または、ViewCrapを維持する必要がある場合は、キャストを使用する必要があります(申し訳ありませんが、.NETは動的パラメーターでの拡張メソッドディスパッチをサポートしていません)。
@Html.Format((string)ViewBag.Name)