Sep*_*aki 3 asp.net-mvc maproute
我正在开发mv4网站,
当我把它们写入RouteConfig时,你能告诉我为什么这些命令在我的应用程序中没有做任何事情:
routes.LowercaseUrls = true;
routes.AppendTrailingSlash = true;
Run Code Online (Sandbox Code Playgroud)
Nik*_*nte 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")
Run Code Online (Sandbox Code Playgroud)
将路由参数设置为routes.LowercaseUrls = true;,routes.AppendTrailingSlash = true;它将生成:
<a href="/home/about/">About this Website</a>
Run Code Online (Sandbox Code Playgroud)
将路由参数设置为routes.LowercaseUrls = false;,routes.AppendTrailingSlash = true;它将生成:
<a href="/Home/About/">About this Website</a>
Run Code Online (Sandbox Code Playgroud)
将路由参数设置为routes.LowercaseUrls = true;,routes.AppendTrailingSlash = false;它将生成:
<a href="/home/about">About this Website</a>
Run Code Online (Sandbox Code Playgroud)
将路由参数设置为routes.LowercaseUrls = false;,routes.AppendTrailingSlash = false;它将生成:
<a href="/Home/About">About this Website</a>
Run Code Online (Sandbox Code Playgroud)
对于此代码:
@url.action("someAction","someController",new{Name=Test})
Run Code Online (Sandbox Code Playgroud)
将路由参数设置为routes.LowercaseUrls = true;,routes.AppendTrailingSlash = true;它将生成:
/somecontroller/someaction/?Name=Test
Run Code Online (Sandbox Code Playgroud)
您可能遇到的一些错误: MVC 4中的区域
存在一个错误,就小写Urls而言.
该NuGet包LowercaseRoutesMVC preports来修复这个bug.
应用程序中小写URL的可能解决方案
如果您想要更改应用程序之外的行为,请考虑使用类似于Url Rewrite for IIS的内容,这样可以转换您的网址.这里的例子.
| 归档时间: |
|
| 查看次数: |
2204 次 |
| 最近记录: |