C# 如何将描述性文本添加到Html.ActionLink()url';s
考虑到mvc中典型的控制器/动作/Id路由,希望添加一个描述性文本 url的类型为C# 如何将描述性文本添加到Html.ActionLink()url';s,c#,asp.net,.net,asp.net-mvc,asp.net-mvc-4,C#,Asp.net,.net,Asp.net Mvc,Asp.net Mvc 4,考虑到mvc中典型的控制器/动作/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" } ) + "
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
在推出我自己的操作链接之前,寻找任何现有的扩展,希望能够去掉非字母数字字符等。你真的不想像那样在ActionLink中添加文本。通过路由,您可以实现您想要的。将新路由添加到默认路由上方的Global.asax registerOutes方法中,如下所示:
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})
这很好,但我更喜欢
ActionLink
方法的这个重载:@Html.ActionLink(item.Name,“Controller”,“Action”,new{title=item.title},null)
。谢谢,你知道有任何帮助方法可以使标题“url友好”,因为它是用户生成的文本,所以不想被尾端捕获!我会编写自己的url友好助手扩展来删除特殊字符并用破折号替换空格。然后只需在title参数上调用它,比如so@Html.ActionLink(Model.title,“Home”,“Page”,new{id=Model.Key,title=Model.title.FriendlyString()},null)
。