c# - 修改 bool 类型的 MVC 默认行为

标签 c# asp.net-mvc-3 razor

我定义了这个 editorTemplate 来修改 bool 类型的行为,我的问题是当类型可以为空时我想创建一个组合来将默认值更改为我想要的,但我不知道如何选择来自模型的值(value)。

例如,如果值为 true,我希望使用 SI 值选择下拉列表,使用 NO 选择 false。现在,我知道我可以像这样获取模型的值 Model.Value 但我不知道如何根据模型传递给选择列表。这是我的编辑器模板

@model Nullable<bool>

@{
    var listItems = new[]{
        new SelectListItem { Value = "null", Text = "Sin Valor" },
        new SelectListItem { Value = "true", Text = "Si" },
        new SelectListItem { Value = "false", Text = "No"}
    };
}

@if (ViewData.ModelMetadata.IsNullableValueType)
{

    @Html.DropDownList("", listItems)
}
else
{
    @Html.CheckBox("", ViewData.Model.Value)
}

最佳答案

您可以在 SelectListItem 上设置它:http://msdn.microsoft.com/en-us/library/system.web.mvc.selectlistitem%28v=VS.100%29.aspx

@model Nullable<bool>

@{
    var listItems = new[]{
        new SelectListItem { Value = "null", Text = "Sin Valor", Selected = !Model.HasValue },
        new SelectListItem { Value = "true", Text = "Si", Selected = Model.HasValue && Model.Value },
        new SelectListItem { Value = "false", Text = "No", Selected = Model.HasValue && !Model.Value}
    };
}

@if (ViewData.ModelMetadata.IsNullableValueType)
{

    @Html.DropDownList("", listItems)
}
else
{
    @Html.CheckBox("", ViewData.Model.Value)
}

关于c# - 修改 bool 类型的 MVC 默认行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8332335/

相关文章:

c# - 你什么时候、为什么要封课?

razor - 输入隐藏显示不正确的 ID (Guid.Empty)

c# - 将数据从 Linq to SQL 查询返回为自定义数据类型

c# Group 然后排序元组列表 <T1,T2,T3>

asp.net-mvc-3 - 将电子表格嵌入 ASP.NET MVC 3 页面

asp.net-mvc - 我可以在 asp.net mvc Controller 中有多个 Post 方法吗?

asp.net - Razor 页面 - 如何使用 asp-for 标签助手重定向到另一个文件夹的页面

razor - 南希 : Razor View Engine: Is the _ViewStart file supported?

c# - 阻止 System.Net.IPAddress 类中的混合 IPv6 格式

asp.net-mvc - 有什么充分的理由使用 FormCollection 而不是 ViewModel 吗?