【发布时间】:2009-10-13 17:35:15
【问题描述】:
由于我无法控制的因素,我需要像这样处理网址:
我想将它们路由到一个特定的控制器/动作,其中 val 已经解析和绑定(即动作的参数)。
理想情况下,我的操作应该是这样的:
ActionResult BackwardCompatibleAction(int val)
我发现了这个问题:ASP.Net MVC routing legacy URLs passing querystring Ids to controller actions,但重定向是不可接受的。
我已经尝试过解析查询字符串部分的路由,但任何带有问号的路由都是无效的。
我已经能够用这个路由请求:
routes.MapRoute(
"dosomething.asp Backward compatibility",
"{dosomething}.asp",
new { controller = "MyController", action = "BackwardCompatibleAction"}
);
但是,从那里获得 val= 值的唯一方法是?是通过 Request.QueryString。虽然我可以在控制器中解析查询字符串,但这会使测试操作更加困难,我不希望有这种依赖。
我觉得我可以对路由做一些事情,但我不知道它是什么。任何帮助将不胜感激。
【问题讨论】: