2011-08-24 64 views

回答

1

最好是什麼意思?

這是否意味着:

  • 容易前端開發人員的代碼反對? (例如,他們是否必須編寫C#來創建鏈接?)
  • 如果更改鏈接指向很多的位置,易於維護?
  • 易於新開發人員遵循?
  • 最好如果你使用強類型的對象,使您的鏈接?
  • 最好如果你有很少的信息,你需要每個鏈接?

因爲有這麼多的方法,使聯繫,每種方法都有不同的目的,我使用所有的人在不同的時間,但我通常只是包裝鏈接在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作爲前綴來生成鏈接和URL
  • 當您需要封裝整個鏈接時使用HtmlHelpers,並使用UrlHelpers當你只是需要一些東西來構建一個URL

我進入這個篇幅在一篇博客文章,我寫,我列出了一些tips for writing URLs in ASP.NET MVC

+0

我正在談更多關於維護。對我來說,通過RouteName很容易做到這一點,因此我直接指向一條路線。但我認爲你的幫手包裝看起來更好。感謝您的明確和良好的迴應。 – Jose3d

0

您試圖使用@ html.ActionLink();?

+0

是的,我試過了,在我看來它更好地使用Html.RouteLink,因爲我更喜歡routename而不是Controller/Action對。你同意嗎?問候。 – Jose3d

+0

我更喜歡使用控制器/動作。你應該使用routelink,如果你更喜歡它,它會爲你做這項工作。 –

相關問題