TMa*_*Man 21 asp.net asp.net-mvc-3
我有一个布尔属性IsActive.在视图中是一个包含其属性的对象列表(包括IsActive).但是在列表中,IsActive是一个不可编辑的复选框,因为它是布尔值.如果我将DisplayFor()更改为DisplayTextFor(),那么它将只显示True或false而不是checkbox.如果Active为true且Inactive为false,我如何将True和false更改为"Active"和"Inactive"?
@Html.DisplayTextFor(modelItem => item.IsActive)
Run Code Online (Sandbox Code Playgroud)
然后我将'Active'设为绿色,将'Inactive'设为红色
小智 33
您可以使用显示模板格式化属性的显示方式.
在View文件DisplayTemplates
夹下~/Shared
或其中创建一个文件夹,该文件夹将存在将使用此模板的视图.
将新的局部视图添加到此文件夹.把它命名为你想要的任何东西,例如IsActive.cshtml
@model bool
@if (Model == true)
{
@Html.Encode("Active")
}
@if (Model == false)
{
@Html.Encode("Inactive")
}
Run Code Online (Sandbox Code Playgroud)
现在将数据注释添加到您的属性,让它知道使用此显示模板.
[UIHint("IsActive")]
public bool IsActive { get; set; }
Run Code Online (Sandbox Code Playgroud)
使用Html.DisplayFor
与此注释任何布尔,它会根据与匹配名称的显示模板进行格式化.通过一些调整,您可以将颜色更改样式直接放在显示模板中.
归档时间: |
|
查看次数: |
15362 次 |
最近记录: |