2016-05-17 65 views
1

所以我安裝了RazorGenerator nuGet並添加了VS擴展(感謝Visual Studio cannot find custom tool RazorGenerator)。由RazorGenerator生成的代碼沒有執行,腳本代碼仍然是

爲了在我現有的mvc應用程序上試用它,我在其中一個視圖上將自定義工具更改爲RazorGenerator,並使用右鍵單擊選項「運行自定義工具」生成代碼。該代碼確實創建。

然後我構建了整個應用程序,並嘗試運行它,在舊的剃鬚刀腳本和新的預編譯代碼中都​​設置了一個斷點。令我驚訝的是,它仍在運行舊的腳本代碼,而不是新的。我是否錯過了將執行切換到新代碼的步驟?這個文檔有點小巧,但如果需要的話,你會認爲像這樣重要的東西會被提及。我知道它使用WebActivatorEx.PostApplicationStartMethod()調用App_Start中的引導代碼,或者至少它調用了一次,似乎並不是在每次調試開始時都這樣做,即使在iisreset之後也是如此。如果我嘗試刪除源Razor視圖,則在返回結果時ajax調用失敗,因此顯然不使用預編譯的代碼。我在某個地方錯過了一步嗎?

我注意到的一件事是,當我在生成的代碼中的Excecute()方法中放置一個斷點時,它會告訴我「斷點當前不會被命中,調試器目標代碼的可執行代碼不會與該行關聯。正在生成正確的代碼?

#pragma warning disable 1591 
//------------------------------------------------------------------------------ 
// <auto-generated> 
//  This code was generated by a tool. 
//  Runtime Version:4.0.30319.42000 
// 
//  Changes to this file may cause incorrect behavior and will be lost if 
//  the code is regenerated. 
// </auto-generated> 
//------------------------------------------------------------------------------ 

namespace ASP 
{ 
    using System; 
    using System.Collections.Generic; 

    #line 2 "..\..\Areas\Views\GenericTable\DataCurrent.cshtml" 
    using System.Data; 

    #line default 
    #line hidden 
    using System.IO; 
    using System.Linq; 
    using System.Net; 
    using System.Text; 
    using System.Web; 
    using System.Web.Helpers; 
    using System.Web.Mvc; 
    using System.Web.Mvc.Ajax; 
    using System.Web.Mvc.Html; 
    using System.Web.Routing; 
    using System.Web.Security; 
    using System.Web.UI; 
    using System.Web.WebPages; 

    #line 3 "..\..\Areas\Views\GenericTable\DataCurrent.cshtml" 
    using Core.Models.Organization.Table; 

    #line default 
    #line hidden 

    #line 4 "..\..\Areas\Views\GenericTable\DataCurrent.cshtml" 
    using Core.ViewModels.Base; 

    #line default 
    #line hidden 

    [System.CodeDom.Compiler.GeneratedCodeAttribute("RazorGenerator", "2.0.0.0")] 
    [System.Web.WebPages.PageVirtualPathAttribute("~/Areas/Views/GenericTable/DataCurrent.cshtml")] 
    public partial class _Areas_Views_GenericTable_DataCurrent_cshtml : System.Web.Mvc.WebViewPage<GenericTableDataCurrent> 
    { 
     public _Areas_Views_GenericTable_DataCurrent_cshtml() 
     { 
     } 
     public override void Execute() 
     { 
WriteLiteral("\r\n"); 


      #line 6 "..\..\Areas\Views\GenericTable\DataCurrent.cshtml" 

    Response.ContentType = "text/xml"; 
    Layout = null; 


      #line default 
      #line hidden 
WriteLiteral("\r\n<rows"); 

WriteAttribute("total_count", Tuple.Create(" total_count=\"", 240), Tuple.Create("\"", 271) 

      #line 10 "..\..\Areas\Views\GenericTable\DataCurrent.cshtml" 
, Tuple.Create(Tuple.Create("", 254), Tuple.Create<System.Object, System.Int32>(Model.TotalCount 

      #line default 
      #line hidden 
, 254), false) 
); 

WriteAttribute("pos", Tuple.Create(" pos=\"", 272), Tuple.Create("\"", 293) 

      #line 10 "..\..\Areas\Views\GenericTable\DataCurrent.cshtml" 
, Tuple.Create(Tuple.Create("", 278), Tuple.Create<System.Object, System.Int32>(Model.Position 

      #line default 
      #line hidden 
, 278), false) 
); 

WriteLiteral(">\r\n <userdata"); 

WriteLiteral(" name=\"!ViewChanged\""); 

WriteLiteral(">"); 


      #line 11 "..\..\Areas\Views\GenericTable\DataCurrent.cshtml" 
           Write((Model.ViewChanged.ToString())); 


      #line default 
      #line hidden 
WriteLiteral("</userdata>\r\n <userdata"); 

WriteLiteral(" name=\"!ViewSortColumn\""); 

WriteLiteral(">"); 


      #line 12 "..\..\Areas\Views\GenericTable\DataCurrent.cshtml" 
           Write((!string.IsNullOrEmpty(Model.ViewSortColumn) ? Model.ViewSortColumn : "")); 


      #line default 
      #line hidden 
WriteLiteral("</userdata>\r\n <userdata"); 

WriteLiteral(" name=\"!ViewSortDirection\""); 

WriteLiteral(">"); 


      #line 13 "..\..\Areas\Views\GenericTable\DataCurrent.cshtml" 
            Write((!string.IsNullOrEmpty(Model.ViewSortDirection) ? Model.ViewSortDirection : "")); 


      #line default 
      #line hidden 
WriteLiteral("</userdata>\r\n <userdata"); 

WriteLiteral(" name=\"!ViewError\""); 

WriteLiteral(">"); 


      #line 14 "..\..\Areas\Views\GenericTable\DataCurrent.cshtml" 
          Write((!string.IsNullOrEmpty(Model.ViewError) ? Model.ViewError : "")); 


      #line default 
      #line hidden 
WriteLiteral("</userdata>\r\n <userdata"); 

WriteLiteral(" name=\"!CriteriaError\""); 

WriteLiteral(">"); 


      #line 15 "..\..\Areas\Views\GenericTable\DataCurrent.cshtml" 
           Write((!string.IsNullOrEmpty(Model.CriteriaError) ? Model.CriteriaError : "")); 


      #line default 
      #line hidden 
WriteLiteral("</userdata> \r\n <userdata"); 

WriteLiteral(" name=\"!FilterError\""); 

WriteLiteral(">"); 


      #line 16 "..\..\Areas\Views\GenericTable\DataCurrent.cshtml" 
           Write((!string.IsNullOrEmpty(Model.FilterError) ? Model.FilterError : "")); 


      #line default 
      #line hidden 
WriteLiteral("</userdata>  \r\n"); 


      #line 17 "..\..\Areas\Views\GenericTable\DataCurrent.cshtml" 


      #line default 
      #line hidden 

      #line 17 "..\..\Areas\Views\GenericTable\DataCurrent.cshtml" 
    foreach (DataRow drRow in Model.GenericTableTable.Rows) 
    { 


      #line default 
      #line hidden 
WriteLiteral(" <row"); 

WriteAttribute("id", Tuple.Create(" id=\"", 1074), Tuple.Create("\"", 1116) 

      #line 19 "..\..\Areas\Views\GenericTable\DataCurrent.cshtml" 
, Tuple.Create(Tuple.Create("", 1079), Tuple.Create<System.Object, System.Int32>(drRow[Model.Table +"^ID"].ToString() 

      #line default 
      #line hidden 
, 1079), false) 
); 

WriteLiteral(" RowChangeState=\"0\""); 

WriteLiteral(">\r\n"); 


      #line 20 "..\..\Areas\Views\GenericTable\DataCurrent.cshtml" 


      #line default 
      #line hidden 

      #line 20 "..\..\Areas\Views\GenericTable\DataCurrent.cshtml" 
     foreach (PSIMColumn oPSIMColumn in Model.GenericTableDataColumns.AllColumns) 
     { 
      switch (oPSIMColumn.PSIMTable.Name.ToUpper()) 
      { 
       case "MOC": 


      #line default 
      #line hidden 
WriteLiteral("     <cell />\r\n"); 


      #line 26 "..\..\Areas\Views\GenericTable\DataCurrent.cshtml" 
        break; 
       default: 


      #line default 
      #line hidden 
WriteLiteral("     <cell "); 


      #line 28 "..\..\Areas\Views\GenericTable\DataCurrent.cshtml" 
        Write(MvcHtmlString.Create(Model.GetCellAttributes(oPSIMColumn, drRow))); 


      #line default 
      #line hidden 
WriteLiteral("><![CDATA["); 


      #line 28 "..\..\Areas\Views\GenericTable\DataCurrent.cshtml" 
                           Write(Html.Raw(Model.CellValue(oPSIMColumn, drRow))); 


      #line default 
      #line hidden 
WriteLiteral("]]></cell>\r\n"); 


      #line 29 "..\..\Areas\Views\GenericTable\DataCurrent.cshtml" 
         break; 
      } 
     } 


      #line default 
      #line hidden 
WriteLiteral(" </row>\r\n"); 


      #line 33 "..\..\Areas\Views\GenericTable\DataCurrent.cshtml" 
    } 


      #line default 
      #line hidden 
WriteLiteral("</rows>\r\n"); 

     } 
    } 
} 
#pragma warning restore 1591 
+0

你做到了嗎?安裝'RazorGenerator.Mvc'軟件包,它註冊了一個特殊的視圖引擎 –

+0

是的,我通過nuGet將RazorGenerator.Mvc安裝到我的mvc項目中。我看到列表中的參考。它還在App_Start中添加了一個引導程序。 – aggaton

回答

0

的道路上的一個解決這個問題可以在這裏找到https://github.com/RazorGenerator/RazorGenerator/issues/94#issuecomment-220097861,它似乎已經植根於同版本差異問題。事情似乎移動解決方案,之後要工作mvc 4和網頁2.清理所有項目中的所有參考文件和web.config文件,以確保它們排列,卸載並重新安裝所有nuGet軟件包。我也直接使用源代碼ñ一個項目,而不是作爲nuGet的DLL安裝,因爲從nuGet安裝時似乎有一些版本不匹配。我將這個解決方案放在這裏,以防其他人遇到和我一樣的問題。