【问题标题】:MVC DropDownListFor default value for boolMVC DropDownListFor bool 的默认值
【发布时间】:2014-06-29 22:16:47
【问题描述】:

我有一个带有 True/False 值的下拉列表。我希望默认值为 true。现在它是假的,因为 bool 的默认值是假的。此下拉列表有时会在 javascript 中动态创建,因此我无法在模型中设置该值,然后才能通过它。如何在chtml文件中设置默认为True?

谢谢。

//----------  cshtml file ---------------
...
   <td class="valuebool">
        @Html.DropDownListFor(m => m.IsBoolFilterCondition, 
        new SelectList(
            new[]
            {
                // The following two lines defaulted to false
                //new { Value = "true", Text = "True" },
                //new { Value = "false", Text = "False" },

                // The next two lines also defaulted to false
                //new SelectListItem { Value = "true", Text = "True", Selected = true },
                //new SelectListItem { Value = "false", Text = "False", Selected = false },

                // The following two lines also default to false
                new { Value = "true", Text = "True", Selected = true },
                new { Value = "false", Text = "False", Selected = false },                    
            },
            "Value",
            "Text"
            ),
            new { @class="valuebool"}
        )
...

//------- Model Class ------------------------
public class FilterCondition
{
      ...
      public bool IsBoolFilterCondition { get; set; }
      ...
}

//--------------- 浏览器源 ----------- 真的 错误的

【问题讨论】:

    标签: asp.net-mvc boolean dropdownlistfor


    【解决方案1】:
    @Html.DropDownListFor(m => m.IsBoolFilterCondition, 
            new SelectList(
                new[]
                {
                    new SelectListItem { Value = "1", Text = "True" ,Selected = true},
                    new SelectListItem { Value = "0", Text = "False" },
                },
                "Value",
                "Text"
                ),
                new { @class="valuebool"}
            )
    

    【讨论】:

    • 感谢 Malkam,不幸的是,当我将“, Selected = true” 添加到我的 SelectList 时,我收到此错误错误 CS0826: No best type found for implicitly-typed array
    • 如上设置 SelectListItem 中的选定项
    • 对不起。我的评论不清楚。正如您在上面显示的那样,我确实在 SelectedItem CTOR 中添加了“,Selected = true”。当我这样做时,我收到错误“没有为隐式类型数组找到最佳类型”。 @Html.DropDownListFor(m => m.IsBoolFilterCondition, new SelectList( new[] { new { Value = "true", Text = "True", Selected = true }, new { Value = "false", Text = "False " }, }, "Value", "Text" ), new { @class="valuebooldll"} )
    • 第二个设置 Selected=false
    • 我设置了 selected = false 并且它现在可以编译并运行,但它仍然默认为 false。任何其他想法:@Html.DropDownListFor(m => m.IsBoolFilterCondition, new SelectList(new[] { new { Value = "true", Text = "True", Selected = true }, new { Value = "false", Text = "False", Selected = false }, }, "Value", "Text" ), new { @class="valuebooldll"} )
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-02-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多