无论我尝试多少次,我的 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 并重新打开项目。不会有什么不同。
我已经为此奋斗了好几个星期了。我在这里和其他地方找到的所有答案都没有帮助。一定有人有答案。