鉴于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
在推出自己的
之前,寻找可能有的任何现有扩展,希望剥离非字母数字字符等。答案 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})