2012-03-21 39 views
3

ASP.Net MVC3非常酷,除了編程問題之外,所有的問題都出於好奇。假設我有一個名爲'Cosmos'的區域,其中有一個帶有'索引'操作的'StarController'。創建一個帶有區域的ASP.Net MVC3 ActionLink

現在,如果我必須創建一個動作鏈接到這個,這兩個語句有什麼區別?

Html.ActionLink("Stars", "Index", "Stars", new { area = "Cosmos" }, null) 

Html.ActionLink("Stars", "Index", "Cosmos/Stars") 

通過外觀上來看,他們的完全一樣的東西。如果它確實做了同樣的事情,匿名類型{area =「Cosmos」}的用法是什麼?

回答

3

在第二個示例中,您將controllerName參數設置爲Cosmos/Stars,這是錯誤的。控制器不能這樣調用。它會生成正確的結果,因爲助手只是簡單地使用參數,但您已假定您的路線將具有某種風格。目前你改變你的路由定義這個鏈接將繼續生成相同的標記,這可能是錯誤的。在第一個示例中,您不再依賴任何硬編碼的url模式。無論您的路線和區域如何配置,它始終會生成正確的網址。

相關問題