이 코드는 작동하는 MVC보기에 포함되어 있지만이 간단한 것을 달성하기 위해 많은 코드가 이어집니다. 더 효율적인 방법이 있습니까?Viewbag 속성이 비어 있는지 확인하고보기에서 기본값 사용
@if (string.IsNullOrEmpty(ViewBag.Name))
{
@:
}
else
{
@:ViewBag.Name
}
이 코드는 작동하는 MVC보기에 포함되어 있지만이 간단한 것을 달성하기 위해 많은 코드가 이어집니다. 더 효율적인 방법이 있습니까?Viewbag 속성이 비어 있는지 확인하고보기에서 기본값 사용
@if (string.IsNullOrEmpty(ViewBag.Name))
{
@:
}
else
{
@:ViewBag.Name
}
@(ViewBag.Name ?? Html.Raw(" "))
은 어떤 방법이 더 효율적으로 만들려면? 당신의 강력한 형식의보기에서 다음
public string FormattedName { get { return string.IsNullOrEmpty(this.Name) ? " " : this.Name; } }
과 :
@Html.DisplayFor(x => x.FormattedName)
또는 당신이 선호하는 경우 :
확인 네, 사용 뷰 모델과는 ViewBag
제거
@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)
"동적"은 일반적으로 남용이라고 생각합니다. –
내 대답은 한 가지 경고를해야합니다. ViewBag.Name이 ""이면 이 아닌 ""로 출력됩니다. 그것은 때문에 ?? 연산자는 빈 문자열이 아닌 null에서만 작동합니다. – VJAI