2011-08-10 39 views
1

我有一個ASP.NET MVC 3 Web應用程序。我最近安裝T4MVC模板使用包管理器:查看未安裝T4MVC時顯示

Tools -> Library Package Manager -> Package Manager Console 

PM> install-package T4MVC 

這導致T4MVC.tt和T4MVC.tt.Settings.t4要包含在我的項目和一堆被autogenrated文件(我有大約10項目中的控制器)。之後,我嘗試構建並運行我的項目,儘管我沒有發現任何錯誤,但在其中一個控制器上,沒有任何操作正在呈現。這意味着瀏覽器將被提供一個完全空白的頁面,而不是從相關視圖生成的頁面。所有其他控制器工作正常。

我真的無法分辨出這個控制器和其他工作正常的人之間的區別,就像我說的那樣沒有錯誤......當我在控制器上執行一個動作時,只是提供一個空白頁面。

關於可能發生什麼的任何想法?

+0

我想通了。這個控制器有一個叫做「View」的動作。困惑T4MVC。學過的知識。如果您想在T4MVC中使用它,請勿調用「查看」操作。 – floatingfrisbee

回答

1

啊是的,我明白會發生什麼:對於每個動作,T4MVC也會生成一個沒有任何參數的重載,所以在這種情況下,它將是一個名爲View的方法,不帶任何參數,然後隱藏MVC方法具有相同的名稱/簽名。請注意,您可能會收到警告,例如

'Mvc3Application.Controllers.HomeController.View()' hides inherited member 'System.Web.Mvc.Controller.View()'. 
Use the new keyword if hiding was intended. 

我們可以把一些邏輯T4MVC覆蓋這種特殊情況,但我要說,如果你能只是避免這種行爲的名字,那將是更好的:)

+0

是的,我確實得到了這個警告。如果T4MVC能夠處理這個問題,那將會非常好,但最終我認爲沒有名爲View的操作可能是一個更好的主意。感謝您的回答。 – floatingfrisbee