【发布时间】:2011-10-17 04:05:09
【问题描述】:
假设我们有这条路线:
routes.MapRoute(
"Library",
"Lib/{id}/{lang}",
New With {.controller = "MyLibrary", .action = "ShowItem", .id= 0, .lang = "en"}
)
假设我们请求这个 url:
http://localhost/Lib/10/de
所以现在我们有了这个路由值:id = 10 & lang = de
问题出在这里:
这段代码:
<%= Url.Action("ShowItem", New With {.id = 45})%>
返回:
http://localhost/Lib/45/de
它改变了 id 但保留了 lang。
但是这段代码:
<%= Url.RouteUrl("Library", New With {.id = 45})%>
返回:
http://localhost/Lib/45
它改变了 id 但删除了 lang!
这是一个错误还是什么?我知道如何解决这个问题,但是这种不同的行为非常令人困惑。我对吗?或者只是想象一下?
一个快速的解决方法是:
<%= Url.RouteUrl("Library", New With {.id = 45},.lang = RouteData.Values("lang"))%>
【问题讨论】:
标签: c# .net asp.net asp.net-mvc vb.net