2009-06-05 87 views
4

我有以下路由定義在圖路線表:在ASP.NET MVC中生成鏈接?

routes.MapRoute(
      "ViewDocument", 
      "browse/document/{document_id}/{document_title}", 
      new { controller = "Document", action = "ViewDocument"} 
      ); 

我要創建的文檔索引視圖的文檔的鏈接(文檔對象有「身份證」和「稱號」屬性)

什麼都要是我在ASP.NET MVC中生成鏈接的方法嗎?

有什麼我做錯了路線定義?

回答

6

在你的路線:

routes.MapRoute(
    "ViewDocument", 
    "browse/document/{document_id}/{document_title}", 
    new { controller = "Document", action = "Title", document_id = "", document_title = ""} 
); 

在你看來:

<%= Url.RouteUrl("ViewDocument", new { document_id = ... , document_title = ... }) %> 

(平原呈現URL)

<%= Html.RouteLink("ViewDocument", new { document_id = ... , document_title = ... }) %> 

(渲染與充滿網址HREF attribure <a></a>元素)

0

你不能找到正確的文檔,只是基於它的ID?

標題不會是多餘的嗎?

+0

ID是唯一的,但標題有更好的URL – Mahesh 2009-06-05 16:38:10

+0

的StackOverflow問題的URL做同樣的事情。標題往往是多餘的,但對於那些想要在訪問鏈接之前對其所點擊內容有模糊概念的人有用。這對SEO也很有用。 – 2009-06-05 18:13:25

0

您可以生成文檔的鏈接與給定的路線如下:

<%= Html.ActionLink("Doc Link", "Title", "Document", new { document_id="id", document_title="title" }, null) %> 

幾件事情需要注意的:

  • 您的自定義路由必須在默認路由之前加入。
  • 您必須包含上面顯示的路徑值,以便在鏈接中指定它們。