Dường như mặc định ASP.NET MVC2 Html helper tạo trùng lặp HTML ID khi sử dụng mã như thế này (EditorTemplates/UserType.ascx):Radio Button tạo trùng lặp 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 nó tạo ra là:
<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" />
Điều đó cho thấy rõ ràng một vấn đề. Vì vậy, tôi phải sử dụng sai Helper hoặc một cái gì đó.
Tôi có thể chỉ định thuộc tính html id
theo cách thủ công nhưng sau đó tôi không thể đảm bảo nó sẽ là duy nhất.
Vì vậy, câu hỏi là làm thế nào để chắc chắn rằng các ID được tạo ra bởi RadioButton helper là duy nhất cho mỗi giá trị và vẫn duy trì những quy ước để tạo ra những ID (mô hình để lồng nhau được tôn trọng? (Tốt nhất không tạo ID bằng tay .)
Có lẽ bạn cũng có thể đề nghị làm thế nào để tạo ID có tính đến tên hiện tại của mô hình để các ID có thể được tạo đúng cách và có các ID như: 'UserType_Primary',' Company_User_UserType_Primary' và cứ như vậy? –
@Dmitriy: Tôi vừa cập nhật câu trả lời của mình. ViewData.TemplateInfo.HtmlFieldPrefix sẽ giúp bạn. – PanJanek
Cảm ơn rất nhiều. Điều đó sẽ làm công việc cho tôi. –