2009-06-05 50 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) %> 

几件事情需要注意的:

  • 您的自定义路由必须在默认路由之前加入。
  • 您必须包含上面显示的路径值,以便在链接中指定它们。