创建自定义@Span Html Helper

时间:2015-03-20 04:33:41

标签: html model-view-controller html-helper visual-studio-2015

我正在使用Visual Studio 2015预览版,我正在尝试创建一个代替标记的自定义Html帮助程序。

我创建了一个命名空间。将名称空间添加到Views文件夹中的web.config。在我的视图中添加了@Using MVCUI.Extentions。

我收到错误:

类型' System.NullReferenceException'的例外情况发生在CallResolutionManager.dll中但未在用户代码中处理

附加信息:未将对象引用设置为对象的实例。

位于以下行:var value = expression.Compile()(helper.ViewData.Model);

这是我的代码。

using System;
using System.Linq.Expressions;
using System.Web.Mvc;
using System.Web.Routing;

namespace MVCUI.Extentions
{

    public static class ExtensionMethods
    {
        public static MvcHtmlString SpanFor<TModel, TProperty>(this HtmlHelper<TModel> helper, Expression<Func<TModel, TProperty>> expression, object htmlAttributes = null)
        {
            var value = expression.Compile()(helper.ViewData.Model);

            var span = new TagBuilder("span");
            span.MergeAttributes(new RouteValueDictionary(htmlAttributes));
            if (value != null)
            {
                span.SetInnerText(value.ToString());
            }

            return MvcHtmlString.Create(span.ToString());

        }
    }
}

0 个答案:

没有答案