asp.net-mvc中的Html帮助程序,访问表达式的子字段

时间:2017-05-18 04:37:43

标签: asp.net-mvc razor html-helper

我想为以下情况编写一个Html帮助器:我有一个类Foo,我想生成以下html:

<tr>
  <td>@Html.TextBoxFor(m => m.Foo.Name)</td>
  <td>@Html.TextBoxFor(m => m.Foo.Value)</td>
  <td>@Html.EnumDropDownListFor(m => m.Foo.Unit)</td>
</tr>

通过做:

@Html.MyCustomHelperFor(m => m.Foo)

我有标准类型的帮助器,但我无法弄清楚进一步指定表达式的语法。我需要模型绑定来处理所有生成的字段。类似的东西:

public static MvcHtmlString MyCustomHelperFor<TModel, TValue> (
            this HtmlHelper<TModel> helper, Expression<Func<TModel, TValue>> expression)
        {
            return MvcHtmlString.Create(
                   "<tr>" +
                       "<td>" + helper.HiddenFor(expression.Name).ToString() + "</td>" +
                       "<td>" + helper.TextBoxFor(expression.Value).ToString() + "</td>" +
                       "<td>" + helper.EnumDropDownListFor(expression.Unit).ToString() + "</td>" +
                    "</tr>");
        }

0 个答案:

没有答案