2010-08-12 61 views
10

在ASP.NET MVC中,我看到我有方便的HTML幫助器,可以使用它來構造表單域和任何數量的其他小東西。但是那裏有'ActionLinks'。ASP.NET MVC:ActionLink vs裸露的url

爲什麼要使用ActionLink而不是隻將自己的網址寫入HTML錨標籤?

換句話說,爲什麼我會用只使用純醇」 HTML和寫作的

<%: Html.ActionLink("Back to List", "QuantityTypes") %> 

代替:

<a href="/internal/quantitytypes">Back to List</a> 

當然,我必須得到一些額外的東西與ActionLink的。我只是想念它,對吧?

回答

9

操作鏈接將爲你創造基於控制器行動地區PARAMS等在適當的網址...它生成基於定義的URL映射規則的URL您MVC路由系統。它會將params映射到正確的url,這取決於它是否需要直接包含在URL中或者通過查詢字符串參數。

是的,你可以自己做,只需輸入它,但它爲你建立的URL,並確保生成的URL是正確的。這是一個幫助功能...它可以幫助您生成有效的鏈接:)

您應該閱讀Scott Guthrie's post並特別注意「Constructing Outgoing URLs from the Routing System」部分。它給出了利用路由系統的原因並解釋其他助手。

+0

+1 ScottGu文章 - 很好的閱讀。 – 2010-08-12 22:36:07

+0

對於/ {controller}/{action}的默認路由 它爲您提供了什麼? – LarryBud 2017-01-20 15:45:52

0

你可以集中控制你的URL。因此,下次您需要更改搜索引擎優化目標時,您不必搜索應用程序中的每個位置,只需在Global.asax中將其切換即可。

+2

有趣。你有這樣的例子嗎? – 2010-08-12 05:12:36

0

如果您想將控制器名稱從內部更改爲外部,該怎麼辦。會發生什麼?您將需要手動更改href鏈接。 ActionLink將執行自動路由。你不需要混淆網址。

0

將ActionLink用於裸露網址的另一個原因是您可能需要將下載鏈接公開到只能通過身份模擬被應用程序訪問的受保護資源。