如何在ASP.NET MVC中使用GroupName定义RadioButtons

时间:2011-11-21 10:22:42

标签: c# asp.net-mvc asp.net-mvc-3 model-view-controller

我需要在mvc项目的一个视图页面中组合在一起的一些RadioButton,这是我的视图代码的一部分:

<body>
<script src="<%: Url.Content("~/Scripts/jquery-1.5.1.min.js") %>"   
<% using (Html.BeginForm()) { %>
<%: Html.ValidationSummary(true) %>
<fieldset>
    <legend>PhoneNumber</legend>
    <div class="Radio" runat="server">
<asp:RadioButton runat="server" GroupName="MyG" ID="RadioButton1" Text="RadioText1" />
    </div>
    <div class="editor-label">
        <%: Html.LabelFor(model => model.Tel1) %>
    </div>
......

<div class="Radio" runat="server">
<asp:RadioButton runat="server" GroupName="MyG" ID="RadioButton2" Text="RadioText2" />
    </div>
    <div class="editor-label">
        <%: Html.LabelFor(model => model.Tel3) %>
    </div>

.......

如上所述定义RadioButtons时出现错误:

System.Web.HttpException: Control 'RadioButton1' of type 'RadioButton' must be placed inside a form tag with runat=server.

如何将runat = server添加到Html.BeginForm()或以任何其他方式添加分组的RadioButtons以查看mvc ??

Razor视图怎么样?有没有办法在RazorView中定义分组的RadioButtons?

4 个答案:

答案 0 :(得分:3)

如果您使用的是ASP.NET MVC,则不应使用WebForms的 <asp:RadioButton />控件。相反,您应该自己输出单选按钮(通过自己编写HTML代码或使用现有的HtmlHelper辅助方法)。

答案 1 :(得分:1)

<input  type="radio" id="SelectedPlanType" name="Plan1" value='1'>

Radiobuttons可以按通用名称分组。

答案 2 :(得分:0)

如前所述,请避免使用旧式webform控件,并尽可能尝试使用强绑定MVC控件。

名称将由mvc使用(通常)模型的属性名称计算出来

所以Razor:

@Html.RadioButtonFor(m => m.IsATallPerson, "True")
@Html.RadioButtonFor(m => m.IsATallPerson, "False")

在Aspx中:

<% Html.RadioButtonFor(m => m.IsATallPerson, "True") %>
<% Html.RadioButtonFor(m => m.IsATallPerson, "False") %>

在这个粗略的例子中,我的模型包含一个bool? (IsATallPerson)将潜水我的单选按钮。

m =&gt; m.IsATallPerson将model属性绑定到控件

字符串“True”或“False”潜水天气选择了单选按钮。

其他所有内容都应该在分组方面开箱即用。

答案 3 :(得分:0)

格式应为@Html.RadioButtonFor(the Property that saves the selected value,Value) Text To be Shown。例如:

@Html.RadioButtonFor(m => m.IsATallPerson, "True") @model.Tel1