无论尝试多少次,都无法使用HTML Helper扩展方法。如果有人想亲自尝试,这是我创建的测试步骤:
"~/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"
并更改以下内容(我添加了扩展 namespace ):<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
-您将看到扩展方法未显示。 我已经为此战斗了几周了。我在这里和其他地方找到的所有答案都无济于事。必须有人回答。
最佳答案
确保使用应用程序名称为 namespace 添加前缀。因此,例如,如果您创建的应用程序在MvcApplication1
中称为~/Views/web.config
,则应输入:
<add namespace="MvcApplication1.TestProject.Extensions"/>
而不仅仅是:
<add namespace="TestProject.Extensions"/>
是的,我想这是VB.NET的问题之一:-)哦,别忘了对
~/Views/web.config
文件进行更改后,关闭并打开Razor View ,否则您的更改将不会立即被考虑(如果您运行该应用程序,它将可以正常运行)。
关于vb.net - 证明我的错误: VB. NET HtmlHelper扩展方法无法在VS 2012的MVC 4中使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14723010/