MVC2 Html.RadioButton - есть ли способ установить InnerHTML с помощью HTML Helpers? - PullRequest
0 голосов
/ 27 мая 2011

Совершенно нормальные радиокнопки в HTML выглядят так:

<input type="radio" name="somename" value="1">First</input>
<input type="radio" name="somename" value="2">Second</input>
<input type="radio" name="somename" value="3">Third</input>

Насколько я вижу, нет способа установить "InnerHTML" (использовать термин JavaScript) в помощнике HTML; что-то вроде:

<%: Html.RadioButtonFor(m => m.somename, 1, "First") %>

Все примеры, которые я видел, создают отдельную метку для каждой кнопки, которая может работать, но на самом деле портит HTML. Можно ли это сделать, а если нет, то почему?

Ответы [ 2 ]

0 голосов
/ 23 августа 2011

В HTML нет закрывающего тега для элементов . Правильно сформированный элемент ввода не имеет дочерних элементов.

0 голосов
/ 27 мая 2011

Вы можете сделать свой собственный помощник HTML:

public static MvcHtmlString RadioButtonFor<TModel, TProperty>( this HtmlHelper<TModel> html, Expression<Func<TModel, TProperty>> expression, object value, string innerHtml )
{
    var memberExpression = (MemberExpression)expression.Body;
    var name = memberExpression.Member.Name;
    var radioButton = string.Format( "<input type='radio' name='{0}' value='{1}'>{2}</input>", name, value, innerHtml );
    return MvcHtmlString.Create( radioButton );
}
...