【发布时间】:2015-08-25 12:19:08
【问题描述】:
我的登录页面有一个与之关联的redirectURL,但redirectURL 并不总是有效的,例如,如果用户注销然后单击按钮以POST 到没有关联GET 方法的url,或者如果RedirectToAction被使用了。
在重定向之前,我尝试了很多方法来查看路由是否有效,但都没有奏效。
我的返回网址是/MyApplicationName/SomeController/SomeAction/12345
我试过了:
ViewEngineResult viewResult = ViewEngines.Engines.FindView(ControllerContext, returnUrl, null);
BuildManager.GetObjectFactory(returnUrl, false)
还有一些我在 SO 上找到的关于 RouteData 的内容。
到目前为止没有任何效果。
有什么想法吗?
【问题讨论】:
-
要做到这一点涉及很多(包括 .NET 反射)。看看MvcRouteTester的源代码和
MvcSiteMapProvider的AuthorizeAttributeAclModule。 -
您自己找到解决方案了吗?
-
我还没有解决这个问题,bug 还在 bugtracker 中!我可能只是为所有帖子手动编写一些重定向键值对,并在重定向之前检查它们。如果我有时间,我会尝试提取控制器和操作并进行一些反思以检查控制器并查看它是否具有 URL 的有效方法,如果我可以读取属性。走着瞧。如果我以这种方式解决它,我将在下面发布答案。
标签: asp.net-mvc asp.net-mvc-4 asp.net-mvc-routing