Asp.net mvc 2 如何使用MVC2从控件重定向
我的任务是在母版页中创建一个用户控件,允许用户在帐户之间切换。通过这种方式,我们可以允许用户更改其帐户,而无需返回帐户页面。这似乎是一项合法且非常简单的任务 我已经构建了该控件,并使用Html.RenderAction将其添加到母版页。最后一步是将用户重定向到该帐户的主页。为了做到这一点,我构建了一条到主页的路由,并尝试返回RedirectToRoute(路由) 尝试此操作时,会出现以下错误:Asp.net mvc 2 如何使用MVC2从控件重定向,asp.net-mvc-2,Asp.net Mvc 2,我的任务是在母版页中创建一个用户控件,允许用户在帐户之间切换。通过这种方式,我们可以允许用户更改其帐户,而无需返回帐户页面。这似乎是一项合法且非常简单的任务 我已经构建了该控件,并使用Html.RenderAction将其添加到母版页。最后一步是将用户重定向到该帐户的主页。为了做到这一点,我构建了一条到主页的路由,并尝试返回RedirectToRoute(路由) 尝试此操作时,会出现以下错误: Child actions are not allowed to perform redirect a
Child actions are not allowed to perform redirect actions
有没有人知道如何解决这个问题,或者我把自己编码进了一个盒子里
提前感谢你可以用一个丑陋的黑客作弊:
[ChildActionOnly]
public ActionResult SomeUserControlAction()
{
// ... some processing
var url = Url.RouteUrl("routeName", new
{
action = "foo",
controller = "bar"
});
Response.Redirect(url);
return null;
}
它太难看了,我甚至为提到它而感到羞愧,但它起作用了
另一种可能是将url作为视图模型的一部分传递给视图,并通过将
window.location.href
设置为新url在javascript中执行重定向。您认为window.location.href解决方案更可取吗?这两种方法似乎都有点笨拙(并不是说我不欣赏你的建议:)有没有一种更干净的方法来处理这件事,我完全没有想到?@wcm,目前还不太熟悉你的具体情况。这两种方法是我立即想到的。