我的控制器上有一些POST动作,它们来自一对GET动作。验证失败时,我想呈现POST来自的操作的视图。例如:
〜/ accounts POST到〜/ accounts / disable - 在验证错误时呈现“index”视图 〜/ accounts / profile POST到〜/ accounts / disable - 在验证错误时呈现“profile”视图
我可以从服务器变量中获取referer(sic)并解析它以找出操作,但希望有一些内置的东西可以做我想要的,或者其他人已经这样做了我可以来自。
ControllerContext.RouteData属性似乎只有当前请求的信息,而不是引用(sic)请求......?
我正在使用ASP.NET MVC测试版。
答案 0 :(得分:2)
MVC Contrib在String上包含一个扩展方法来获取路由(具体来说,in here)。理论上这可以让你做到
RouteData referrer = Request.UrlReferrer.PathAndQuery.Route();
或者,当然,将它包装在HttpRequest的扩展方法中,这样你就可以了
RouteData referrer = Request.ReferrerRoute();
但是,它用于单元测试并使用Rhino Mocks来创建GetRouteData()所需的HttpContextBase。好消息是它似乎很少嘲笑它,所以如果你创建自己的HttpContextBase派生的FakeHttpContext类,你可以避免使用Rhino Mocks。