我正在使用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());
}
}
}