我有一个布尔型属性IsActive。视图中是对象及其属性(包括IsActive)的列表。但在列表中,IsActive是一个不可编辑的复选框,因为它是布尔值。如果我将DisplayFor()改为DisplayTextFor(),那么它将只显示True或false而不是checkbox。如何将True和false更改为' Active‘和' Inactive’,其中Active为true,Inactive为false?
@Html.DisplayTextFor(modelItem => item.IsActive)
然后我会将“Active”设置为绿色,将“Inactive”设置为红色
发布于 2012-03-22 12:25:07
可以使用显示样板来格式化特性的显示方式。
在~/Shared
下或将使用此模板的视图所在的视图文件夹中创建一个DisplayTemplates
文件夹。
将新的局部视图添加到此文件夹。您可以随意命名,例如IsActive.cshtml
@model bool
@if (Model == true)
{
@Html.Encode("Active")
}
@if (Model == false)
{
@Html.Encode("Inactive")
}
现在向您的属性添加数据注释,让它知道要使用此显示模板。
[UIHint("IsActive")]
public bool IsActive { get; set; }
在带有此注释的任何布尔值上使用Html.DisplayFor
,它将根据具有匹配名称的显示模板进行格式化。通过一些调整,您可以将颜色更改样式直接放置在显示模板中。
发布于 2016-08-23 21:15:26
这是一个古老的问题,但这可能会对某些人有所帮助。我遇到了完全相同的问题,并用@(IsFooBar ? "Yes" : "No")
解决了。
发布于 2013-05-14 17:40:03
您可以尝试这样做:
@if (item.IsActive)
{
@string.Format("Active");
}
else
{
@string.Format("Inactive");
}
https://stackoverflow.com/questions/9815344
复制相似问题