如何查找破壞的Html.ActionLinks?查找破壞的控制器操作
例如查找Html.ActionLink("View", "ViewCustomer", "Customer")
其中CustomerController.ViewCustomer()
不再存在。
如何查找破壞的Html.ActionLinks?查找破壞的控制器操作
例如查找Html.ActionLink("View", "ViewCustomer", "Customer")
其中CustomerController.ViewCustomer()
不再存在。
您可以使用來自MVCContrib的強類型操作鏈接。
<%: Html.ActionLink<Home>(c => c.Index()) %>
如果您使用的是已編譯的視圖,那麼當您刪除引用的控制器方法時,這些將在編譯時中斷。
這些「強類型動作鏈接」是ASP.NET MVC 3框架的一部分嗎?我從來沒有見過這種內置的功能......你能添加一個指向文檔的鏈接嗎? – nemesv 2012-08-15 00:47:23
就是這樣,我幾乎準備好將整個項目重做爲強類型鏈接(因爲它適用於所有場景,不僅是'ActionLink'),而是首先嚐試 - 它不是內置的,您必須安裝'MvcFutures'。這個網站上的人們說這個軟件包有問題 - 錯誤和性能。我個人沒有檢查它,但'T4MVC'已經過很好的測試,並且已經工作了多年。我現在堅持我的答案和'T4MVC'。 – 2012-08-15 01:59:37
他們是MVC3的一部分,但是未來的一部分。他們是T4MVC的一部分,現在是MvcContrib的一部分 - 請參閱http://mvccontrib.codeplex.com/wikipage?title=RedirectToAction&referringTitle=文檔文檔 – 2012-08-15 10:44:57
如果您正在尋找系統的方法安裝(可以使用NuGet)並應用T4MVC。
我把它做到了我自己的項目中 - 所有你的魔術字符串(不僅是動作鏈接,而是需要字符串的所有東西)在你的應用程序中消失。您最終只能使用強類型幫助程序來消除使用文字字符串。
特別是在
@Html.ActionLink("View", "ViewCustomer", "Customer")
您的案件將成爲
@Html.ActionLink("Externalize me as well!", MVC.Customer.ViewCustomer())
,如果您外部化的一個建議,這將成爲你在尋找什麼:
@Html.ActionLink(Config.ViewLabel, MVC.Customer.ViewCustomer())
難道不是這不是美麗嗎? 我認爲這應該是事實上的標準,而不是「串聯」的方法。
查找到什麼,它對你的項目: 在瀏覽次數:
@Html.RenderPartial(MVC.Customer.Views.YourView)
在控制器:
return View(Views.YourView);
或
RedirectToAction(MVC.Home.MyAction().AddRouteValues(Request.QueryString));
希望這有助於。
它似乎有點舊(它是爲MVC 1.0和2.0設計的)。雖然我(類似於)語法,但我認爲強類型的動作鏈接現在是執行它的規範方式,並且您可以使用這些鏈接而無需鍵入完全限定的名稱。 – 2012-08-15 00:17:19
@RobertHarvey是否可以在所有級別上工作(我至少已列出)或僅在操作鏈接上工作?因爲我也喜歡,它的T4MVC似乎更系統化......好奇。謝謝! – 2012-08-15 00:26:36
@RobertHarvey閱讀強烈類型的動作鏈接 - 它的社區非常討厭,主要用於性能問題,但雖然魔術字符串明顯快得多,但T4MVC是這兩者之間的權衡。我會說T4MVC是要走的路 - 強有力的類型和系統。感謝您指出! http://stackoverflow.com/questions/11620832/considerations-for-strongly-typed-actionlink – 2012-08-15 01:04:27
通過在您的「ViewCustomer」視圖中進行搜索? – 2012-08-14 22:04:18