Я пытаюсь получить HTML, похожий на следующий с MVC3 + Razor:
<input id="x1" type="radio" value="true" name="UseExistingNumberX" checked="checked"/>
<input id="x2" type="radio" value="false" name="UseExistingNumberX" />
По какой-то причине я не могу заставить его работать. Когда я попробовал следующее:
@Html.RadioButtonFor(Function(m) m.UseExistingNumber, "true", New With {.id = "r1", .checked = "checked"}) Use Existing Service
@Html.RadioButtonFor(Function(m) m.UseExistingNumber, "false", New With {.id = "r2"}) Add New Service
Я получаю вывод html:
<input type="radio" value="true" name="UseExistingNumber" id="r1" data-val-required="The UseExistingNumber field is required." data-val="true" checked="checked"> Use Existing Service
<input type="radio" value="false" name="UseExistingNumber" id="r2" checked="checked"> Add New Service
Это моя модель:
Public Class SelectiveServiceStep1Model
<Required(ErrorMessage:="Postcode is required.")> _
<RegularExpression("^\d*[0-9]$", ErrorMessage:="Your Postcode must contain only digits.")> _
Public Property Postcode As String
Public Property UseExistingNumber As Boolean
End Class
Если вы заметили, что есть две проблемы с сгенерированным html:
- В Razor я установил только check = "checked" на "r1", но по какой-то причине он также установил флажок check = "checked" на "r2". Почему?
- Я не пометил «UseExistingNumber» в моей модели как поле «Обязательный», но почему «r1» отображается с атрибутом «data-val-required»?
Примечание: я знаю, что могу писать html напрямую в Razor, и я также знаю, что могу написать свои собственные расширения для рендеринга нужного html. Я просто не могу поверить, что уже не могу использовать встроенный, наверняка я что-то упустил, верно?
Спасибо