Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/304.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 修改布尔类型的MVC默认行为_C#_Asp.net Mvc 3_Razor - Fatal编程技术网

C# 修改布尔类型的MVC默认行为

C# 修改布尔类型的MVC默认行为,c#,asp.net-mvc-3,razor,C#,Asp.net Mvc 3,Razor,我定义了这个editorTemplate来修改布尔类型的行为,我的问题是当该类型可为空时,我想创建一个组合来更改默认值,使其符合我的要求,但我不知道如何选择来自模型的值 例如,如果值为true我希望使用SI值选择下拉列表,使用NO选择false。现在,我知道我可以像这样获得模型的值model.value,但我不知道如何根据模型传递到seleclist。这是我的编辑模板 @model Nullable<bool> @{ var listItems = new[]{

我定义了这个editorTemplate来修改布尔类型的行为,我的问题是当该类型可为空时,我想创建一个组合来更改默认值,使其符合我的要求,但我不知道如何选择来自模型的值

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

@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)
}
@模型可为空
@{
var listItems=new[]{
新建SelectListItem{Value=“null”,Text=“Sin Valor”},
新建SelectListItem{Value=“true”,Text=“Si”},
新建SelectListItem{Value=“false”,Text=“No”}
};
}
@if(ViewData.ModelMetadata.IsNullableValueType)
{
@Html.DropDownList(“,listItems)
}
其他的
{
@复选框(“,ViewData.Model.Value)
}

您可以在
SelectListItem
上进行设置:

@模型可为空
@{
var listItems=new[]{
新建SelectListItem{Value=“null”,Text=“Sin Valor”,Selected=!Model.HasValue},
新建SelectListItem{Value=“true”,Text=“Si”,Selected=Model.HasValue&&Model.Value},
新建SelectListItem{Value=“false”,Text=“No”,Selected=Model.HasValue&&!Model.Value}
};
}
@if(ViewData.ModelMetadata.IsNullableValueType)
{
@Html.DropDownList(“,listItems)
}
其他的
{
@复选框(“,ViewData.Model.Value)
}

我在想,你会如何达到复选框场景?编辑器模板仅适用于可为空的类型。不过,我可能错过了一些东西。
@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)
}