asp.net MVC的Html.RadioButton生成id和名称相同

Ali*_*Ali 27 html asp.net-mvc

<%=Html.RadioButton("BookType", "1")  %> C#
<%=Html.RadioButton("BookType", "2")  %> VB
Run Code Online (Sandbox Code Playgroud)

以上代码生成以下代码

<input id="BookType" name="BookType" type="radio" value="1" >C#
<input id="BookType" name="BookType" type="radio" value="2" >VB
Run Code Online (Sandbox Code Playgroud)

我需要相同的名称,但不同的ID

我希望输出像

*

<input id="rdoCSharp" name="BookType" type="radio" value="1" >C#
<input id="rdoVb" name="BookType" type="radio" value="2" >VB
Run Code Online (Sandbox Code Playgroud)

*

Ric*_*lly 35

您可以通过使用RadioButton方法重载传递要应用的属性来覆盖默认值:

<%=Html.RadioButton("BookType", "1", new { id = "yourId" })  %> C#
Run Code Online (Sandbox Code Playgroud)

  • 从早期的mvc开始,这是如此破碎,mvc无法在版本5上正确渲染单选按钮,这是一种耻辱. (12认同)
  • 我刚刚进入MVC并试图理解这个概念.使用这些简单的Html助手有什么大的好处?为什么不按需要执行`<input id ="rdoCSharp"name ="BookType"type ="radio"value ="1">`和个别<%= Model.Whatever%>中的sub?相信微软生成你的HTML听起来像一个可怕的想法.他们一次又一次地使用HTML/CSS失败了. (3认同)
  • @ xr280xr:MVC也会将所有验证属性之类的东西注入到HTML中,所以不像你想象的那么简单. (3认同)
  • @ xr280xr使用`FooFor(m => m.Property)`语法意味着你的`name =""属性会自动生成,如果你改变你的视图模型就可以减少错误,这意味着你可以以嵌套的方式组合形式,它也意味着你可以做循环.重点是,HTML Helpers是一个*Very Good Thing(TM)* - 偶尔会出现这样的错误. (2认同)

Dar*_*rov 9

<%= Html.RadioButton("BookType", "1", new { id = "rdoCSharp" }) %> C#
<%= Html.RadioButton("BookType", "2", new { id = "rdoVb" }) %> VB
Run Code Online (Sandbox Code Playgroud)


Had*_*das 5

使用:

<%=Html.RadioButton("BookType", "1",new{@id="BookType1"})  %> C#
<%=Html.RadioButton("BookType", "2",new{@id="BookType2"})  %> VB
Run Code Online (Sandbox Code Playgroud)