2016-12-19 41 views
0

我想让RazorGenerator.MsBuild编译我们的CSHTML文件。我遇到的问题是,从自定义WebViewPage继承的CSHTML页面会引发编译错误。这些CSHTML文件在运行时工作,如果它们被复制到网站,它只是构建失败。RazorGenerator.MsBuild不能使用自定义的WebViewPage

例如,我们可能有以下CSHTML文件:

public class MyWebViewPage : System.Web.Mvc.WebViewPage 
{ 
    public bool DoSomething() 
    { 
     return true; 
    } 
} 

而下面CSHTML:

@inherits MyWebViewPage 

@if(DoSomething()){ 

} 

这将导致以下错误:

The name 'DoSomething' does not exist in the current context. 

我怎样才能获取MSBuild任务来识别我的自定义类?

回答

0

事实证明这是RazorGenerator.MsBuild生成代码的一个问题。编译时,将继承类写为:

MyView : MyWebViewPage<dynamic> 

生成器需要一个通用的基本视图。最简单的解决方案是改变MyWebViewPage以支持泛型:

public class MyWebViewPage<T> : System.Web.Mvc.WebViewPage<T> 
{ 
    public bool DoSomething() 
    { 
     return true; 
    } 
} 
相关问题