MVC2 Html.RadioButton - 有没有办法使用HTML Helpers设置InnerHTML?

时间:2011-05-26 20:25:36

标签: asp.net-mvc-2 radio-button html-helper

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>

据我所知,没有办法在HTML助手中设置“InnerHTML”(使用JavaScript术语);类似的东西:

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

我见过的所有示例都为每个按钮创建了一个单独的标签,这可能有效,但实际上搞砸了HTML。可以这样做,如果没有,为什么?

2 个答案:

答案 0 :(得分:0)

您可以制作自己的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 );
}

答案 1 :(得分:0)

在HTML中,&lt; input&gt;没有结束标记。元素。格式良好的输入元素没有子节点。