7

我的控制器上有一些 POST 操作,这些操作来自一对 GET 操作。当验证失败时,我想呈现 POST 来自的操作的视图。例如:

~/accounts POST 到 ~/accounts/disable - 在验证错误时呈现“索引”视图 ~/accounts/profile POST 到 ~/accounts/disable - 在验证错误时呈现“profile”视图

我可以从服务器变量中获取引用者(原文如此)并对其进行解析以找出操作,但希望要么有内置的东西可以满足我的需求,要么其他人已经这样做了,我可以从中借鉴.

似乎 ControllerContext.RouteData 属性只有关于当前请求的信息,而不是引用(原文如此)请求......?

我正在使用 ASP.NET MVC 测试版。

4

1 回答 1

2

MVC Contrib 在 String 上包含一个扩展方法来获取路由(具体来说,在这里)。理论上这会让你做

RouteData referrer = Request.UrlReferrer.PathAndQuery.Route();

或者,当然,将其包装在 HttpRequest 的扩展方法中,这样你就可以做到

RouteData referrer = Request.ReferrerRoute();

但是,它用于单元测试并使用 Rhino Mocks 来创建 GetRouteData() 所需的 HttpContextBase。好消息是它似乎很少模拟它,所以如果你创建自己的从 HttpContextBase 派生的 FakeHttpContext 类,你也许可以避免 Rhino Mocks。

于 2009-03-10T23:23:21.843 回答