2011-01-09 19 views
2

更好經過近3年的MVC我抓我的頭。只是我,還是我們的方式,我們指定的方式鏈接在asp.net。mvc吸盤?我很生氣與asp .net mvc操作鏈接?有什麼在MVC3

@Html.ActionLink("Log Off", "LogOff", "Account") 

@Html.ActionLink("Australia", "CountryDetail", "Places", new { id = "Australia", filter = "xxx", morejunkvaliablesrepeatedoverandaver = "guuuuuuuuh"}, null) 

在預覽的MVC 1,我們有這給了我們的智能感知和編譯檢查,這是我所愛的時髦的通用操作鏈接。我知道他們因性能問題而將他們刪除,並且因爲您實際上無法保證路線會一直解決......但是,默認的做法並不能讓我在大型應用程序中感到安全。

我也用過MVC2的T4Mvc,說實話,我並不是很喜歡它。它不是Mvc框架的一部分,並且特別在大團隊和持續集成構建中進行源代碼控制的開發令人沮喪。

我想我也可以導入Mvc Futures並繼續使用泛型類型(這可能是我會做的)。

我即將開始一個非常大的項目,並想知道其他人在想什麼?是否有其他人對這些選項感到惱火或有新的解決方案?

似乎ActionLinks是最基本的&常用功能。不應該有一個好的開箱即用的解決方案,我們即將達到此框架的第3版。

+0

爲什麼不建立一個行爲,你所希望的方式替代的幫手?更好的是,爲什麼不把通用實現從預覽源中提取出來並讓它與你現在使用的工具一起工作呢? – nerraga 2011-01-09 23:21:13

回答

4

我一開始不喜歡這一點。也嘗試過T4MVC。生成的代理類感覺太麻煩。

然後我意識到的東西。
如果您的視圖和控制器命名和結構明顯,那麼他們喜歡永遠不會改變。

最好讓所有事情都容易理解,而不是試圖讓一切都變得安全。瞭解principle of least astonishment是關鍵。

所以我不關心這些「神奇字符串」了。

+1

這甚至不是我所關心的魔術字符串......這就是說,對於編碼abd的一半,我不得不指定醜陋的匿名對象,而不顯示我的動作方法所期望的參數。看也太醜了。 – 2011-01-09 22:17:47

+0

@Jonathon你應該擁抱「動態」。智能感知和強烈的打字往往足以提供錯誤的安全感,因爲價格相當高昂 - 代碼中不必要的冗長。玩弄Ruby來了解我的意思。 – 2011-01-09 22:50:56

0

就我個人而言,我使用MVC期貨助手來避免視圖中的魔術字符串,希望有一天微軟會找到一些時間將它們整合到框架中。

0

看看其他的web框架,並竊取他們的一些想法,如果你喜歡他們。

0

我從FubuMVC中搶走了HtmlTags庫,並用它來生成與HTML相關的任何東西。這是我寫的post。沒有任何泛型,但至少你不必記住所有的重載,它可以很好地適用於T4MVC。

Html.LinkToAction("Edit").Text("Edit").AddClass("navigation") 

VS

Html.ActionLink("Edit", "Edit", null, new { @class = "navigation" })