我定义了这个 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/