证明我错了:VB.NET HtmlHelper扩展方法不适用于VSC的MVC 4

无论我尝试多少次,我都无法使用我的 HTML Helper扩展方法.这是我创建的测试步骤,如果有人想自己尝试一下:

>使用Visual Studio 2012,我使用“Internet应用程序”项目模板创建一个新的“Visual Basic ASP.NET MVC 4 Internet Web应用程序”.
>我创建了一个文件夹“〜/ Views / Helpers”
>我创建一个文件displayForPropertyHelper.vb”并添加以下代码

Namespace TestProject.Extensions
    Public Module HtmlHelperExtensions
        <Extension()>
        Public Function displayForProperty(helper As HtmlHelper) As MvcHtmlString
            Return MvcHtmlString.Create("TEST")
        End Function
    End Module
End Namespace

>我打开“〜/ Views / Web.config”并更改以下内容(我添加了扩展名称空间):

<system.web.webPages.razor>
    <host factoryType="System.Web.Mvc.MvcWebRazorHostFactory,System.Web.Mvc,Version=4.0.0.0,Culture=neutral,PublicKeyToken=31BF3856AD364E35" />
    <pages pageBaseType="System.Web.Mvc.WebViewPage">
      <namespaces>
        <add namespace="System.Web.Mvc" />
        <add namespace="System.Web.Mvc.Ajax" />
        <add namespace="System.Web.Mvc.Html" />
        <add namespace="System.Web.Optimization"/>
        <add namespace="System.Web.Routing" />
        <add namespace="TestProject.Extensions"/>
      </namespaces>
    </pages>
</system.web.webPages.razor>

>编译项目
>选择任何剃刀视图文件,然后键入@ Html.display-您将看到扩展方法显示.
>添加到剃刀视图文件@Imports TestProject.Extensions,然后保存并关闭文件.
>重新打开文件,然后输入@ Html.display-您将看到扩展方法显示.
>您甚至可以尝试关闭VS2012并重新打开项目.不会有所作为.

我已经和它斗争了好几个星期了.我在这里和其他地方找到的所有答案都没有帮助.有人必须得到答案.

确保使用应用程序名称为命名空间添加前缀.因此,例如,如果您创建的应用程序在〜/ Views / web.config中被称为MvcApplication1,则应该放置:
<add namespace="MvcApplication1.TestProject.Extensions"/>

而不仅仅是:

<add namespace="TestProject.Extensions"/>

是的,我猜,它是那些VB.NET的东西之一:-)哦,不要忘记在更改〜/ Views / web.config文件关闭并打开Razor视图,否则你的更改不会是立即考虑(如果你运行应用程序,它当然会工作).

相关文章

Format[$] ( expr [ , fmt ] ) format 返回变体型 format$ 强...
VB6或者ASP 格式化时间为 MM/dd/yyyy 格式,竟然没有好的办...
在项目中添加如下代码:新建窗口来显示异常信息。 Namespace...
转了这一篇文章,原来一直想用C#做k3的插件开发,vb没有C#用...
Sub 分列() ‘以空格为分隔符,连续空格只算1个。对所选...
  窗体代码 1 Private Sub Text1_OLEDragDrop(Data As Dat...