2013-03-03 85 views
1

我正在尝试为WebViewPage类创建扩展方法,以便能够在我的.cshtml文件中调用@Foo()。 我几乎可以肯定,下面的代码应该可以工作,但它不会...Razor WebViewPage扩展方法不起作用

我使用System.Web.Mvc,所以我不认为它是一个名称空间问题。

namespace System.Web.Mvc 
{ 

    public static class WebViewPageExtensions 
    { 

     public static void Foo(this System.Web.Mvc.WebViewPage view) 
     { 
      //do something... 
     } 

    } 
} 

注:我也试图与一个自定义的WebViewPage类,它的工作要做到这一点,但我想知道为什么我不能使用扩展方法。

谢谢

回答

0

您是否在web.config中为webviewpages声明了程序集?

<assemblies> 
    <add assembly="YourAssembly, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" /> 
    </assemblies> 
+0

不,我应该在哪里放这些线? 有一个在我的web.config没有块,指的组件的唯一的事情是: <添加组​​件=“System.Web.Mvc,版本= 4.0.0.0,文化=中性公钥= 31BF3856AD364E35”命名空间= “System.Web.Mvc” 的TagPrefix = “MVC”/> Profet 2013-03-04 00:18:09

+0

应该是: <编译调试= “真” targetFramework = “4.0”> 2013-03-04 00:28:02

+0

不会改变任何东西:/ – Profet 2013-03-04 00:54:54

1

也许是迟到的答案,但您应该可以在您的cshtml文件中调用@ this.Foo()。