2016-12-19 39 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; 
    } 
} 
相關問題