在ASP.NET MVC 3中使用助手生成鏈接的最佳選擇是什麼?使用ASP.NET MVC幫助器生成鏈接的最佳選擇是什麼?
至於我可以看到它是更好地使用Url.RouteUrl
和Html.RouteLink
助手比Url.Action
和Html.ActionLink
生成鏈接,因爲前兩個允許您使用RouteName
而不是Controller
和Action
的URL模式匹配。
在ASP.NET MVC 3中使用助手生成鏈接的最佳選擇是什麼?使用ASP.NET MVC幫助器生成鏈接的最佳選擇是什麼?
至於我可以看到它是更好地使用Url.RouteUrl
和Html.RouteLink
助手比Url.Action
和Html.ActionLink
生成鏈接,因爲前兩個允許您使用RouteName
而不是Controller
和Action
的URL模式匹配。
最好是什麼意思?
這是否意味着:
因爲有這麼多的方法,使聯繫,每種方法都有不同的目的,我使用所有的人在不同的時間,但我通常只是包裝鏈接在HtmlHelper
方法,並創建一個強名稱它:如果你喜歡對你產生的(可能是因爲你沒有特殊的CSS類個人微升整個鏈路
<a href="<%= Url.GenerateProductUrl(Model.Product) %>" class="xurl"><%= Html.Encode(Model.Product.Name) %></a>
:
public static MvcHtmlString GenerateProductUrl(this Urlhelper helper, Product product)
{
return MvcHtmlString.Create(
helper.RouteUrl(
"widgetlink",
new {
productID = product.ProductId,
productName = product.ProductName.ToUrlSlug()
}
)
);
}
然後調用調用這個如下油墨),那麼你可以使用這個:
public static MvcHtmlString GenerateProductLink(this Htmlhelper helper, Product product)
{
return MvcHtmlString.Create(
helper.RouteLink(
"widgetlink",
new {
productID = product.ProductId,
productName = product.ProductName.ToUrlSlug()
}
)
);
}
使用HtmlHelpers和UrlHelpers爲您提供了以下優點:
Html.
並顯示所有鏈接,特別是如果您將Generate
作爲前綴來生成鏈接和URLUrlHelpers
當你只是需要一些東西來構建一個URL我進入這個篇幅在一篇博客文章,我寫,我列出了一些tips for writing URLs in ASP.NET MVC。
您試圖使用@ html.ActionLink();?
是的,我試過了,在我看來它更好地使用Html.RouteLink,因爲我更喜歡routename而不是Controller/Action對。你同意嗎?問候。 – Jose3d
我更喜歡使用控制器/動作。你應該使用routelink,如果你更喜歡它,它會爲你做這項工作。 –
我正在談更多關於維護。對我來說,通過RouteName很容易做到這一點,因此我直接指向一條路線。但我認爲你的幫手包裝看起來更好。感謝您的明確和良好的迴應。 – Jose3d