当前位置:  开发笔记 > 后端 > 正文

routes.LowercaseUrls和routes.AppendTrailingSlash在MVC中不起作用

如何解决《routes.LowercaseUrls和routes.AppendTrailingSlash在MVC中不起作用》经验,为你挑选了1个好方法。

我正在开发mv4网站,

当我把它们写入RouteConfig时,你能告诉我为什么这些命令在我的应用程序中没有做任何事情:

routes.LowercaseUrls = true;
routes.AppendTrailingSlash = true;

NikolaiDante.. 10

首先,你需要通过某些东西生成路线@Html.ActionLink,@Url.Action或类似的东西,以便工作.这不是一个神奇的子弹.

来自MSDN:

AppendTrailingSlash

获取或设置一个值,该值指示在规范化虚拟路径时是否添加尾部斜杠.

(来源)

LowercaseUrls

获取或设置一个值,该值指示在规范化虚拟路径时是否将URL转换为小写.

(来源)

URL格式是(源):

scheme:[// [user:password @] host [:port]] [/] path [?query] [#fragie]

这影响的部分是路径部分而且只是路径部分.任何查询字符串部分都不受影响.AppendTrailingSlash将一个/添加到路径部分的末尾.

所以对于这段代码:

@Html.ActionLink("About this Website", "About")

将路由参数设置为routes.LowercaseUrls = true;,routes.AppendTrailingSlash = true;它将生成:

About this Website

将路由参数设置为routes.LowercaseUrls = false;,routes.AppendTrailingSlash = true;它将生成:

About this Website

将路由参数设置为routes.LowercaseUrls = true;,routes.AppendTrailingSlash = false;它将生成:

About this Website

将路由参数设置为routes.LowercaseUrls = false;,routes.AppendTrailingSlash = false;它将生成:

About this Website

对于此代码:

@url.action("someAction","someController",new{Name=Test})

将路由参数设置为routes.LowercaseUrls = true;,routes.AppendTrailingSlash = true;它将生成:

/somecontroller/someaction/?Name=Test

您可能遇到的一些错误: MVC 4中的区域
存在一个错误,就小写Urls而言.

该NuGet包LowercaseRoutesMVC preports来修复这个bug.


应用程序中小写URL的可能解决方案

如果您想要更改应用程序之外的行为,请考虑使用类似于Url Rewrite for IIS的内容,这样可以转换您的网址.这里的例子.



1> NikolaiDante..:

首先,你需要通过某些东西生成路线@Html.ActionLink,@Url.Action或类似的东西,以便工作.这不是一个神奇的子弹.

来自MSDN:

AppendTrailingSlash

获取或设置一个值,该值指示在规范化虚拟路径时是否添加尾部斜杠.

(来源)

LowercaseUrls

获取或设置一个值,该值指示在规范化虚拟路径时是否将URL转换为小写.

(来源)

URL格式是(源):

scheme:[// [user:password @] host [:port]] [/] path [?query] [#fragie]

这影响的部分是路径部分而且只是路径部分.任何查询字符串部分都不受影响.AppendTrailingSlash将一个/添加到路径部分的末尾.

所以对于这段代码:

@Html.ActionLink("About this Website", "About")

将路由参数设置为routes.LowercaseUrls = true;,routes.AppendTrailingSlash = true;它将生成:

About this Website

将路由参数设置为routes.LowercaseUrls = false;,routes.AppendTrailingSlash = true;它将生成:

About this Website

将路由参数设置为routes.LowercaseUrls = true;,routes.AppendTrailingSlash = false;它将生成:

About this Website

将路由参数设置为routes.LowercaseUrls = false;,routes.AppendTrailingSlash = false;它将生成:

About this Website

对于此代码:

@url.action("someAction","someController",new{Name=Test})

将路由参数设置为routes.LowercaseUrls = true;,routes.AppendTrailingSlash = true;它将生成:

/somecontroller/someaction/?Name=Test

您可能遇到的一些错误: MVC 4中的区域
存在一个错误,就小写Urls而言.

该NuGet包LowercaseRoutesMVC preports来修复这个bug.


应用程序中小写URL的可能解决方案

如果您想要更改应用程序之外的行为,请考虑使用类似于Url Rewrite for IIS的内容,这样可以转换您的网址.这里的例子.

推荐阅读
mobiledu2402851377
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有