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

asp.net MVC的Html.RadioButton生成相同的id和名称 C# VB,html,asp.net-mvc,Html,Asp.net Mvc,上面的代码生成下面的代码 <%=Html.RadioButton("BookType", "1") %> C# <%=Html.RadioButton("BookType", "2") %> VB C# VB 我需要相同的名字,但不同的ID 我想要像这样的输出 * C# VB *您可以通过使用以下命令传递要应用的属性来覆盖默认值: C# 使用: C# VB C# VB 这是我几年前在MVC1中做的。真的吗?我还得这么做?除了向后兼容,原因是什么。为什么默认情况下

上面的代码生成下面的代码

<%=Html.RadioButton("BookType", "1")  %> C#
<%=Html.RadioButton("BookType", "2")  %> VB
C#
VB
我需要相同的名字,但不同的ID

我想要像这样的输出

*

C#
VB

*

您可以通过使用以下命令传递要应用的属性来覆盖默认值:

C#
使用:

C#
VB
C#
VB

这是我几年前在MVC1中做的。真的吗?我还得这么做?除了向后兼容,原因是什么。为什么默认情况下根本不输出ID?自从早期的mvc以来,这一点就被打破了,很遗憾,mvc仍然不能在版本5上正确地呈现单选按钮。我刚刚进入mvc,正在尝试理解这个概念。使用这些简单的Html助手的最大好处是什么?为什么不根据需要将
和sub放入个人中?相信微软会生成你的HTML听起来是个糟糕的主意。它们在HTML/CSS方面一次又一次地失败。@xr280xr:MVC还将所有验证属性之类的东西注入HTML,所以不像您想象的那么简单。@xr280xr使用
FooFor(m=>m.Property)
语法意味着将自动生成
name=”“
属性,这可以减少错误,如果您更改viewmodels,这意味着您可以以嵌套方式组合表单,也意味着您可以执行循环。重点是,HTML助手是一件非常好的事情(TM)——它只是偶尔会出现这样的错误。
<input id="BookType" name="BookType" type="radio" value="1" >C#
<input id="BookType" name="BookType" type="radio" value="2" >VB
<input id="rdoCSharp" name="BookType" type="radio" value="1" >C#
<input id="rdoVb" name="BookType" type="radio" value="2" >VB
<%=Html.RadioButton("BookType", "1", new { id = "yourId" })  %> C#
<%=Html.RadioButton("BookType", "1",new{@id="BookType1"})  %> C#
<%=Html.RadioButton("BookType", "2",new{@id="BookType2"})  %> VB
<%= Html.RadioButton("BookType", "1", new { id = "rdoCSharp" }) %> C#
<%= Html.RadioButton("BookType", "2", new { id = "rdoVb" }) %> VB