un modo per rendere più efficiente?
Sì certo, i modelli e l'uso vista sbarazzarsi del ViewBag
:
public string FormattedName
{
get { return string.IsNullOrEmpty(this.Name) ? " " : this.Name; }
}
e quindi nella vista fortemente tipizzato:
@Html.DisplayFor(x => x.FormattedName)
o se si preferisce:
@Model.FormattedName
Un'altra possibilità è scrivere un aiuto personalizzato er:
public static class HtmlExtensions
{
public static IHtmlString Format(this HtmlHelper html, string data)
{
if (string.IsNullOrEmpty(data))
{
return new HtmlString(" ");
}
return html.Encode(name);
}
}
e quindi a suo avviso:
@Html.Format(Model.Name)
o se è necessario mantenere il ViewCrap si dovrà convivere con un cast (mi dispiace, .NET non supporta metodo di estensione spedizione su parametri dinamici):
@Html.Format((string)ViewBag.Name)
fonte
2012-07-19 07:43:54
devo mettere in guardia su una cosa nella mia risposta. Se il ViewBag.Name è "", l'output viene visualizzato come "" non . È perché il ?? l'operatore lavora solo per stringhe nulle e non vuote. – VJAI