创建可复用的自定义 ASP.NET MVC Helpers

通常,在ASP.NET MVC项目中App_Code目录下新建.cshtml编写类似下方的代码就能创建自定义的MVC Helper了,

假设文件名为StrHelper.cshtml,那么在别的视图中的就可以这么调用:@StrHelper.MySubstring("以***为核心的党中央推进深改纪实", 10)。

@helper   MySubstring(string input,int length)
{
   if(input.Length>length)
    {
         <span>@input.Substring(0, length)...</span>
    }
   else
   {
        <span>@input</span>
   }
}

接下来,我们可以借助Razor Generator进一步将这个MVC Helper封装编译成DLL,(我的两台VS Ultimate 2013都无法安装,VS Community 2015安装成功)

将StrHelper.cshtml复制到新的类库中,设置文件属性,并为类库添加引用,如下图所示。

正确操作以上步骤后会在StrHelper.cshtml文件下生成StrHelper.generated.cs文件,但这自动生成的代码并不完美,

我们需要对该文件进行简单的修改,如下图所示。(后续对StrHelper.cshtml再进行操作,此处的修改将被覆盖)

到此所有工作完成,编译取出DLL即可使用,在页面引用DLL命名空间,剩下的像常规使用Helper一样即可,使用效果图如下。

原文地址:https://www.cnblogs.com/xurongjian/p/6952319.html