首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >更改Html.DisplayFor布尔值复选框MVC

更改Html.DisplayFor布尔值复选框MVC
EN

Stack Overflow用户
提问于 2012-03-22 09:42:42
回答 4查看 18.6K关注 0票数 25

我有一个布尔型属性IsActive。视图中是对象及其属性(包括IsActive)的列表。但在列表中,IsActive是一个不可编辑的复选框,因为它是布尔值。如果我将DisplayFor()改为DisplayTextFor(),那么它将只显示True或false而不是checkbox。如何将True和false更改为' Active‘和' Inactive’,其中Active为true,Inactive为false?

代码语言:javascript
复制
      @Html.DisplayTextFor(modelItem => item.IsActive) 

然后我会将“Active”设置为绿色,将“Inactive”设置为红色

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-03-22 12:25:07

可以使用显示样板来格式化特性的显示方式。

~/Shared下或将使用此模板的视图所在的视图文件夹中创建一个DisplayTemplates文件夹。

将新的局部视图添加到此文件夹。您可以随意命名,例如IsActive.cshtml

代码语言:javascript
复制
@model bool
@if (Model == true)
{
    @Html.Encode("Active")
}
@if (Model == false)
{
    @Html.Encode("Inactive")
}

现在向您的属性添加数据注释,让它知道要使用此显示模板。

代码语言:javascript
复制
[UIHint("IsActive")]
public bool IsActive { get; set; }

在带有此注释的任何布尔值上使用Html.DisplayFor,它将根据具有匹配名称的显示模板进行格式化。通过一些调整,您可以将颜色更改样式直接放置在显示模板中。

票数 39
EN

Stack Overflow用户

发布于 2016-08-23 21:15:26

这是一个古老的问题,但这可能会对某些人有所帮助。我遇到了完全相同的问题,并用@(IsFooBar ? "Yes" : "No")解决了。

票数 6
EN

Stack Overflow用户

发布于 2013-05-14 17:40:03

您可以尝试这样做:

代码语言:javascript
复制
@if (item.IsActive) 
{ 
    @string.Format("Active");
}
else
{ 
    @string.Format("Inactive");
}
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9815344

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档