我发送URL作为RouteValue项有问题,并使用一个参数获取GetVirtualPath。
var parameters = new RouteValueDictionary {
{ CommonUrl.UrlParameters.AnyString, "ItISAnyString"},
{CommonUrl.UrlParameters.ReturnUrl, "test/myPage/Index"}
};
使用以下参数获取网址:
RouteTable.Routes.GetVirtualPath(null, anyRouteName, **parameters**).VirtualPath
所以我得到的网址如http://localhost/ItISAnyString/ test / myPage / Index
系统避开了这个页面而感到厌烦404。 但如果我手动做这样的事情 http://localhost/ItISAnyString/的测试$ $ MYPAGE索引 一切正常。 我认为应该有更好的方法来解决这个问题。
修改
我发现,对于此路线,如果有更多的一个'/'符号,请{}禁止第二个参数。所以我会创造它,看看有什么好处。
修改
我的大学很遗憾,当我把它作为参数发送时我必须对URL进行编码。 好的,我做到了。 但现在我有400错误。 对我来说有点奇怪。
答案 0 :(得分:0)
问题出在映射模式中。 我刚刚在路线图中添加了{*}模式。 现在我的global.asax代码:
routes.MapPageRoute(RouteName.Security.TestOne,
Test,
"~/Web/Pages/Test/test.aspx", true);
public static string Test = String.Format("{0}/{1}/{2}/{3}",
"Test",
"Testconfirm",
"{" + CommonUrl.UrlParameters.FirstParam+ "}",
"{*****" + CommonUrl.UrlParameters.Url + "}");
此概念名称为“在URL模式中处理可变数量的段” http://msdn.microsoft.com/en-us/library/cc668201.aspx