2

给定 mvc 中典型的 Controller/Action/Id 路由,希望添加描述性文本,以便 url 属于类型

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

这类似于它们的形式

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

虽然这可以很容易地完成

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

寻找可能可用的任何现有扩展,希望在推出我自己的之前去除非字母数字字符等

4

1 回答 1

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})
于 2013-05-08T19:22:45.180 回答