|
1
31
C对于任何喜欢的人来说,约翰的文章版本: C# and VB version on my blog
…新路线:
您也可以使用以下方法,但请记住,您需要将视图命名为“我的操作”,如果您希望让Visual Studio自动生成视图文件,这可能会很烦人。
|
|
|
2
18
我想出了一个解决办法。mvcroutehandler中的requestContext包含控制器和操作的值,您可以对其执行简单的替换操作。
然后,用等效的路由替换routes.maproute。添加指定新的路由处理程序。这是必需的,因为MapRoute不允许您指定自定义路由处理程序。
|
|
|
3
14
在这种情况下,您真正需要做的就是使用希望在URL中显示的连字符为视图命名,删除控制器中的连字符,然后添加一个actionname属性,该属性中包含连字符。根本不需要下划线。 调用视图 编辑详细信息.aspx 有一个这样的控制器:
|
|
|
4
9
我意识到这是一个很古老的问题,但对我来说,这只是接受带有连字符的URL的一半,另一半生成这些URL,同时仍然能够在MVC框架中使用html.actionlink和其他助手,我通过创建类似的自定义路由类来解决这个问题,这里是代码,以防它帮助任何人来这里是谷歌搜索。它还包括URL的下外壳。
然后,在添加路由时,可以创建RouteCollection扩展,也可以只在全局路由声明中使用以下内容
|
|
|
5
2
感谢dsteuernol给我这个答案——正是我想要的。然而,我发现我需要增强hyphenateroutehandler来覆盖当前页面中暗示控制器或区域的场景。例如,使用@html.actionlink(“我的链接”,“索引”)。 我将gethttphandler方法更改为:
把大写字母放回原处意味着暗示的控制器或区域被正确地断字。 |
|
|
6
1
我开发了一个开源软件 努吉特图书馆 对于这个问题,它隐式地将every mvc/url转换为每个mvc/url。 虚URL对SEO更友好,更容易阅读。( More on my blog post ) NuGet Package: https://www.nuget.org/packages/LowercaseDashedRoute/ 要安装它,只需右键单击项目并选择Nuget Package Manager,然后在“联机”选项卡类型“小写虚线路由”上打开Visual Studio中的Nuget窗口,它就会弹出。 或者,您可以运行此代码 在包管理器控制台中:
在此之后,您应该打开app_start/routeconfig.cs并注释掉现有的route.maproute(…)调用,然后添加:
就是这样。所有的URL都是小写的、虚线的,并且是隐式转换的,不需要您做任何其他操作。 开放源代码项目URL: https://github.com/AtaS/lowercase-dashed-route |
|
|
7
0
不为每个URL编写映射就不知道方法:
|
|
|
8
0
如果将项目升级到MVC5,则可以使用属性路由。
与公认的解决方案相比,我更喜欢这种方法,它在控制器操作名和视图文件名中留下下划线,并在视图的url.action助手中留下连字符。我更喜欢一致性,不必记住名称是如何转换的。 |