ASP.NET MVC使用bool值进行单选按钮检查属性

时间:2011-05-13 13:02:32

标签: asp.net-mvc

基本上我希望根据模型视图控件中的值来检查我的单选按钮,下面是一些示例代码和我到目前为止的尝试:

  <tr>
                <td>
                <label for="brakepads" class="label3">Brake Pads:</label></td>
                <%= Html.TextBox("brakepads", Model.brakepads, new {style="display:none" })%>
                <%= Html.ValidationMessage("brakepads", "*") %>

                <td><label for="brakefluid" class="label4" >Passed:</label>
                <asp:RadioButton ID="RadioButton15" runat="server" GroupName="b" value="True" Checked="<%= Model.brakepads.Value %>" onclick="brakepads.value=(this.value)" /></td>
                <td><label for="brakefluid"  class="label4" >Failed:</label>
                <asp:RadioButton ID="RadioButton16" runat="server" GroupName="b" value="False" Checked="<% Model.brakepads.Value %>" onclick="brakepads.value=(this.value)"/></td>
                </tr>

我在运行时得到以下内容:无法从其字符串表示形式'&lt;%= Model.brakepads.Value%&gt;'创建'System.Boolean'类型的对象对于'Checked'属性。

我尝试使用(bool)进行投射,但这也没有用,所以我不确定接下来该做什么。我唯一关心的是偶尔bool将为null,如果这不会破坏功能那么它就没问题了。

3 个答案:

答案 0 :(得分:6)

如何在ASP.NET MVC 3 razor C#

中执行布尔单选按钮列表

我们希望html是什么

Apply discount: 
<input type="radio" name="apply_discount" value="yes" /> Yes
<input type="radio" name="apply_discount" value="no" /> No

我们需要一个模型属性

public bool ApplyDiscount { get; set; }

现在我们所要做的就是将html转换为razor

Apply discount:
@Html.RadioButtonFor(m => m.ApplyDiscount, true) Yes
@Html.RadioButtonFor(m => m.ApplyDiscount, false) No

我希望这会有所帮助。

答案 1 :(得分:2)

您正在将WebForms控件(RadioButton)与ASP.NET MVC帮助程序(Html.TextBox)混合使用,我认为这是一种危险的做法。

您可以尝试使用Html.RadioButton()辅助方法渲染单选按钮:

<td><label for="brakefluid" class="label4" >Passed:</label>
<%= Html.RadioButton("brakefluid", true, Model.brakepads.Value) %></td>
<td><label for="brakefluid"  class="label4" >Failed:</label>
<%= Html.RadioButton("brakefluid", false, !Model.brakepads.Value) %></td>    

答案 2 :(得分:0)

您使用Html.RadioButton或拥有另一个MVC隐藏字段并将Model.brakepads绑定到该字段。使用javascript设置单选按钮的Checked属性。