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

发布于 2024-11-07 17:01:36 字数 1184 浏览 0 评论 0原文

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

  <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>

我在运行时得到以下内容:无法从其对象创建“System.Boolean”类型的对象字符串表示 '<%= Model.brakepads.Value %>'对于“已检查”属性。

我尝试使用 (bool) 进行转换,但这也不起作用,所以我不确定下一步该怎么做。我唯一担心的是,有时 bool 会为空,如果这不会破坏功能那就没问题了。

Basically I want my radio buttons to be checked depending on a value from my model view control, below is some sample code and my attempt so far:

  <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>

I get the following at runtime: Cannot create an object of type 'System.Boolean' from its string representation '<%= Model.brakepads.Value %>' for the 'Checked' property.

I tried using (bool) to cast, but that didn't work either, so I'm unsure of what to do next. My only concern is that occasionally the bool will be null, if that won't break functionality then it's fine.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

仅此而已 2024-11-14 17:01:36

如何在 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

我希望这会有所帮助。

How to do a boolean radio button list in ASP.NET MVC 3 razor C#

What we want the html to be

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

We need a model property

public bool ApplyDiscount { get; set; }

Now all we have to do is convert the html to razor

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

I hope this helps.

感受沵的脚步 2024-11-14 17:01:36

您将 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>    

You are mixing WebForms controls (RadioButton) together with ASP.NET MVC helpers (Html.TextBox), I think it's a dangerous practice.

You could try using Html.RadioButton() helper method to render a radio button:

<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>    
白昼 2024-11-14 17:01:36

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

Either you use Html.RadioButton or have another MVC hidden field and bind Model.brakepads to it. Use javascript to set radio button's Checked property.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文