Below you will find pages that utilize the taxonomy term “T4MVC”
Posts
T4MVC - VS2015 Update 1 causes an error - Identifier Expected
T4MVC 在 Visual Studio 2015 安裝完 Update 1 後,產生的程式碼會像這樣。
public override void ExecuteResult(System.Web.Mvc.ControllerContext ) { } 可以看到 ExecuteResult 方法的參數消失了,所以編譯時會報 Identifier Expected 的錯誤。
{% img /images/posts/T4MVCIdentifierExpected/1.png %}
若要解決這問題,可到 Update for Microsoft Visual Studio 2015 (KB3110221) 這邊下載更新套件,安裝後即可解決此問題。
Link VS2015 Update 1 causes an error - Identifier Expected · Issue #54 · T4MVC/T4MVC Update for Microsoft Visual Studio 2015 (KB3110221)
read morePosts
T4MVC - Add Timestamp To Static Links
T4MVC 除了解決 ASP.NET MVC Magic String 的問題外,還能解決常見的網頁 Cache 問題。
只要在 T4MVC.tt.settings.xml 設定檔中將 AddTimestampToStaticLinks 設為 True 就可以了。
... <AddTimestampToStaticLinks>True</AddTimestampToStaticLinks> ... 這樣使用 T4MVC 去取用靜態檔案的位置時,T4MVC 就會幫我們在網址後面依照檔案的修改時間去附加雜湊值,避免前端快取。
read morePosts
T4MVC - Generate a single file with everything
T4MVC 預設在產生程式碼時會依 Controller 產生不同的檔案,這樣會在專案目錄下產生很多的檔案,然而以自動產出的檔案來說,只要產生無誤,功能都正常,那麼產生的程式是不是照 Controller 分開,說實話一點都不重要。
且以現階段來說,T4MVC 無法脫離 Visual Studio 運行,因此 CI Server 無法運行 T4MVC 去產生檔案,這樣的設定使得每新增一個檔案就必需記得 Commit 對應的產出檔到版控上,反而造成不便。
好在 T4MVC 有留這部份的設定彈性,我們只要在 T4MVC.tt.settings.xml 設定檔中將 SplitIntoMultipleFiles 設為 False 即可。
... <!-- If true,the template output will be split into multiple files. --> <SplitIntoMultipleFiles>false</SplitIntoMultipleFiles> ...
read morePosts
T4MVC - A T4 template for ASP.NET MVC
玩過 ASP.Net MVC 的應該都有注意到,在寫 ASP.Net MVC 時會用到很多 Magic String。像是在取網址位置時,會需要帶入 Controller Name 以及 Action Name。
@Url.Action("Home", "Index") 在設定連結時,會需要帶入連結名稱、 Controller Name 以及 Action Name。
@Html.ActionLink("Home", "Index", "Home") 導到另外一個 Action 去處理時,又需要 Action Name。
return RedirectToAction("About"); 可以看到這些叫用帶入的都是字串,而且類似的地方還有很多,所以整個 ASP.Net MVC 寫下來會發現 Magic String 充斥在程式中。這樣的問題不僅讓我們開發上無 Intellisense 可用,編寫時不是那麼便利,修改時也容易因此而有所遺漏。
這篇要介紹的 T4MVC 就是一能解決這樣問題的 T4 範本套件。 T4MVC 透過 T4 去遍巡專案內的檔案,產生一些輔助的類別與方法的多載,巧妙的避開 Magic String 的問題。這邊可先快速的瀏覽一下 Channel 9 的相關影片,體驗一下 T4MVC 的魅力。
使用前需先透過 NuGet 搜尋並安裝 T4MVC 套件。
{% img /images/posts/T4MVC/1.png %}
{% img /images/posts/T4MVC/2.png %}
read more