加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc – 使用Razor,如何使所有“bool?”属性显示为是/否

发布时间:2020-12-15 19:32:16 所属栏目:asp.Net 来源:网络整理
导读:参见英文答案 Help with c# and bool on asp.net mvc3 这是我的页面代码到目前为止 @model TennisClub.Models.ClubMember@{ ViewBag.Title = "Details";}h2 Details/h2fieldset legendClubMember/legend @Html.DisplayForModel()/fieldsetp @Html.ActionLink
参见英文答案 > Help with c# and bool on asp.net mvc3
这是我的页面代码到目前为止
@model TennisClub.Models.ClubMember
@{
    ViewBag.Title = "Details";
}
<h2>
    Details
</h2>
<fieldset>
    <legend>ClubMember</legend>
    @Html.DisplayForModel()
</fieldset>
<p>
    @Html.ActionLink("Edit","Edit",new { id = Model.Id }) |
    @Html.ActionLink("Back to List","Index")
</p>

对于我的模型中的所有可空的布尔(bool?),这将显示一个带有未设置,True或False的灰色选择列表.我希望它只是纯文本:不设置,是或否.

如何最容易地实现这一点?我希望这种风格在我的网站上是全球性的.

编辑

只是在每个Mark的答案中创建一个模板,但是细节页面看起来完全一样.

我创建了一个bool.cshtml文件并将其放在以下文件夹中:

[ProjectFolder]/Views/Shared/DisplayTemplates

这是我现在为我的bool.cshtml模板所做的:

@model bool?

@if (Model == null)
{
    <text>Not Set</text>
}
else
{
    if (Model.Value)
    {
        <text>Yes</text>
    }
    else
    {
        <text>No</text>
    }
}

这完全不对我的细节页有任何影响.

任何想法我在做错什么?

编辑2

这是我的模型类:

public class ClubMember
{
    public int Id { get; set; }
    public string FirstName { get; set; }
    public string LastName { get; set; }
    public string EmailAddress { get; set; }
    public string PhoneNumber { get; set; }
    public string PhoneType { get; set; }
    public bool? CanPlayDays { get; set; }
    public bool? CanPlayEvenings { get; set; }
    public bool? CanPlayWeekends { get; set; }
    public string Role { get; set; }
}

解决方法

您将要覆盖默认模板.简而言之,在您的视图文件夹下,您将创建一个“DisplayTemplates”文件夹和“EditorTemplates”文件夹.一旦你有这个,你可以创建一个Boolean.cshtml文件在每一个模型是bool?那么你可以做任何你想要的,只要显示选项去.这会改变怎么样的bool?模型字段渲染.

这是一个博客文章,我多次提到,以帮助我弄清楚. http://bradwilson.typepad.com/blog/2009/10/aspnet-mvc-2-templates-part-3-default-templates.html

更新:一个小心谨慎,请记住处理null的情况.过去我忘了这样做,咬我了

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读