似乎默认ASP.NET MVC2 HTML辅助生成重复的HTML标识使用这样的代码(EditorTemplates/UserType.ascx)时:单选按钮生成HTML重复ID-S
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<UserType>" %>
<%: Html.RadioButton("", UserType.Primary, Model == UserType.Primary) %>
<%: Html.RadioButton("", UserType.Standard, Model == UserType.Standard) %>
<%: Html.RadioButton("", UserType.ReadOnly, Model == UserType.ReadOnly) %>
的HTML它产生的是:
<input checked="checked" id="UserType" name="UserType" type="radio" value="Primary" />
<input id="UserType" name="UserType" type="radio" value="Standard" />
<input id="UserType" name="UserType" type="radio" value="ReadOnly" />
这就清楚地表明了一个问题。所以我必须滥用帮手或其他东西。
我可以手动指定id
作为html属性,但我不能保证它是唯一的。
所以,问题是如何确保通过单选助手生成的ID是唯一的每个值和仍然保留约定产生这些ID(所以嵌套模型得到尊重?(最好不要手动生成的ID )
也许你也可以建议如何生成的ID考虑到模型的账户当前名称,以便ID可以正确生成和有这样的ID:'UserType_Primary','Company_User_UserType_Primary'等等? – 2010-05-11 23:47:37
@Dmitriy:我刚刚更新了我的回复。 ViewData.TemplateInfo.HtmlFieldPrefix应该可以帮到你。 – PanJanek 2010-05-12 10:57:01
非常感谢。这应该为我做这份工作。 – 2010-05-12 23:38:55