如何将html复选框中的字符串值转换为布尔值?

时间:2011-05-25 16:57:00

标签: asp.net html asp.net-mvc-2 checkbox

我有一个复选框组,它有三个不同的值。存储和未存储是一个布尔值,“等待”是字符串值。我正在将一个字符串值传递给check bok。我有一个错误,说无法将bool转换为字符串...

                状态

            <div class="field forCheckbox">
                <%:Html.CheckBoxFor(model => model.Stored)%>
                <%:Html.LabelFor(model => model.Stored)%>
            </div>



            <div class="field forCheckbox">
                <%:Html.CheckBoxFor(model => model.Not Stored)%>
                <%:Html.LabelFor(model => model.Not Stored)%>
            </div>


            <div class="field forCheckbox">
                <%:Html.CheckBoxFor(Convert.boolean(model=>model.Waiting))%>
                <%:Html.LabelFor(model=>model.Waiting) %>
            </div>

我该怎么办?

2 个答案:

答案 0 :(得分:1)

我同意balexandre的回答,但我认为在空值的情况下使用'Equals'会更好。
写'cond?true:false'是没用的。 'cond'有效。

<div class="field forCheckbox">
   <%:Html.CheckBox(model => {return "Waiting".Equals(model.Waiting)})%>
   <%:Html.LabelFor(model=>model.Waiting) %>
</div>

答案 1 :(得分:0)

您可以使用

<%:Html.CheckBox("Waiting", Model.Waiting.ToLower() == "waiting"))%>

或将boolean属性添加到您的模型中:

public bool WaitingBool { 
    get {
        if(!String.IsNullOrEmpty(this.Waiting) && 
           this.Waiting.ToLower() == "waiting") 
            return true;
        return false;
    } 
}

你可以使用:

<%:Html.CheckBoxFor(model=>model.WaitingBool)%>