使用Razor创建通用视图组件

时间:2013-07-19 07:30:12

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

我想编写自己的自定义HTML帮助程序,扩展现有的帮助程序。例如。我想创建以扩展@Html.EditorFor,如下所示:

@Html.EditorFor(model => model.percent, new { data_a_sign="%", data_p_sign="s" })

变为:

@Html.PercentEditorFor(model => model.percent)

怎么会写这个?

这样的东西?

namespace AdminPortal.Helpers
{
    public static class HtmlHelpers
    {
        public static MvcHtmlString PercentEditorFor<TModel>(this HtmlHelper html, 
            Expression<Func<TModel>> expression)
        {
            // Some Magic?
        }
    }
}

任何指针都会非常感激。

1 个答案:

答案 0 :(得分:1)

只需从您自己的帮助程序返回现有的EditorFor方法即可:

public static MvcHtmlString PercentEditorFor<TModel>(this HtmlHelper html, 
            Expression<Func<TModel>> expression)
        {
            return html.EditorFor(...);
        }

将您自己修改的参数放入EditorFor方法中。不需要魔法:)