创建自定义助手Asp.net MVC 3

时间:2011-07-06 07:01:36

标签: .net asp.net-mvc asp.net-mvc-3

我想创建一个自定义的asp.net mvc3帮助器。

要使用该帮助器,我应该编写如下语法

@Html.DisplayMyCustomHelper(model => model.FullName)

预期产出

Full Name (Value Picked from model's Display attribute)= Current Value Of Property

例如:

public Class User
{
      [Display(Name="Full Name")]
      public string FullName{get;set;}
}

User = new User{FullName="Tom Cruise"};

内部剃刀

@model User
@Html.DisplayMyCustomHelper(model => model.FullName)

预期OutPut

全名=汤姆克鲁斯


我该怎么做?

1 个答案:

答案 0 :(得分:1)

public static MvcHtmlString DisplayMyCustomHelper<TModel, TValue>(this HtmlHelper<TModel> htmlHelper, Expression<Func<TModel, TValue>> expression)
    {
        const string format = "{0} = {1}";

        var metadata = ModelMetadata.FromLambdaExpression<TModel, TValue>(expression, htmlHelper.ViewData);

        var model = metadata.Model;

        var result = string.Format(format, metadata.DisplayName, model == null ? string.Empty : model.ToString());

        return MvcHtmlString.Create(result);
    }
相关问题