我正在开发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的内容,这样可以转换您的网址.这里的例子.
首先,你需要通过某些东西生成路线@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的内容,这样可以转换您的网址.这里的例子.