Как мне создать шаблон отображения, чтобы я мог отображать bool как «Да» или «Нет» без флажка? Используя mvc3
<%: Html.DisplayFor(model => model.SomeBoolean)%>
Для истинного/ложного использования DisplayTextFor Justin Grant
Для да/нет на основе Nuri YILMAZ , это-.NetCore 2.2, для понижения заменяют HtmlString MvcHtmlString:
1) C# пишут новый дополнительный DisplayForYZ
public namespace X.Views.Shared
{
public static class DisplayExtensions
{
// If this was called DisplayFor not DisplayForYZ, we'd get recursion
public static IHtmlContent DisplayForYZ<TModel, TValue>
(this HtmlHelper<TModel> html, Expression<Func<TModel, TValue>> expression)
where TModel : Y
{
object o = expression.Compile().Invoke(html.ViewData.Model);
// For any bool on TModel, return in this custom way:
if (o.GetType() == typeof(bool))
{
return (bool)o ? new HtmlString("Yup") : new HtmlString("Nope");
}
// Otherwise use default behaviour
return html.DisplayFor(expression);
}
}
}
2), cshtml: Импортируйте DisplayExtensions
пространство имен и используйте новое расширение.
@model X.ViewModels.Y
@using X.Views.Shared;
@Html.DisplayForYZ(modelItem => modelItem.Z) @*//Yup/Nope*@
@Html.DisplayForYZ(modelItem => modelItem.A) @*//default non bool behavior*@
@Html.DisplayFor(modelItem => modelItem.Z) @*//check box*@
@Html.DisplayTextFor(modelItem => modelItem.Z) @*//true/false*@
X = {моя компания} Y = {возражают для специализированного дисплея} Z = {bool свойство} А = {non-bool свойство}