如何向Html.ActionLink()url添加描述性文本

时间:2013-05-08 19:14:44

标签: c# asp.net .net asp.net-mvc asp.net-mvc-4

鉴于mvc中典型的Controller / Action / Id路由,希望添加描述性文本 网址是

类型
 mySite.com/home/page/myarg/the-title-of-the-page-etc.

这类似于SO,它们的形式是

 stackoverflow.com/questions/928349234/the-text-of-the-question-etc.

虽然可以使用

轻松完成
  Html.ActionLink(LinkText, "Page", new { id = "myArg" } ) + "/" + myUrlText

在推出自己的

之前,寻找可能有的任何现有扩展,希望剥离非字母数字字符等。

1 个答案:

答案 0 :(得分:2)

您真的不想将文本附加到ActionLink上。您可以通过路由完成所需的任务。在您的默认路由上方添加一条到Global.asax RegisterRoutes方法的新路由,如下所示:

routes.MapRoute("Page", "home/page/{id}/{title}",
            new { controller = "Home", action = "Page", id = UrlParameter.Optional, title = UrlParameter.Optional });

然后你设置你的ActionLink:

@Html.ActionLink("SomeText", "Page", new { controller = "Home", id = b.Key, title = Model.Title})