基本上我希望根据模型视图控件中的值来检查我的单选按钮,下面是一些示例代码和我到目前为止的尝试:
<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,如果这不会破坏功能那么它就没问题了。
答案 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属性。