說不上來,如果這是在PR或Beta發生的事情,但如果我上HtmlHelper
創建一個擴展方法,它不是在剃刀供電頁確認:剃刀的HtmlHelper擴展(或其他名稱空間視圖)未找到
namespace SomeNamespace.Extensions {
public static class HtmlExtensions {
public static string Foo(this HtmlHelper html) {
return "Foo";
}
}
}
我把它添加到<Namespaces>
節Web.config
:
<pages>
<namespaces>
<add namespace="System.Web.Mvc" />
<!-- snip -->
<add namespace="SomeNamespace.Extensions"/>
</namespaces>
</pages>
但它拋出試圖查看頁面時編譯錯誤:
@Html.Foo()
如果我用WebForms重新創建頁面,它工作正常。這是怎麼回事?
解決方法
如果我包括我的Razor視圖@using SomeNamespace.Extensions
,然後它的工作原理,但我寧願只是有它在Web.config
即使解決方法不適用於我。擴展方法將在intelliSense中顯示,但在運行時會引發編譯錯誤。 – Clark 2010-11-15 16:44:30
爲@using解決方法+1。我比較喜歡它。 – Kent 2012-12-11 23:17:06
@對於單個視圖,可以使用解決方法。 但是對於多個視圖,代碼管理成爲一個問題。 – Rahatur 2013-12-05 06:53:06