如何使用MVC2从控件重定向

时间:2011-07-06 20:43:15

标签: asp.net-mvc-2

我的任务是创建一个用户控件,以便在我们的母版页中生活,允许用户在帐户之间切换。这样,我们就可以允许用户更改帐户,而无需返回帐户页面。这似乎是一个合法且完全直截了当的任务。

我已经构建了控件并使用Html.RenderAction将其添加到母版页。最后一步是让我将用户重定向到该帐户的主页。为此,我构建了一个到主页的路由,并尝试返回RedirectToRoute(路由)。

当我尝试这个时,我收到了这个错误:

Child actions are not allowed to perform redirect actions

任何人对如何解决这个问题有任何想法,或者我已将自己编入一个框

提前致谢

1 个答案:

答案 0 :(得分:2)

你可以欺骗丑陋的黑客:

[ChildActionOnly]
public ActionResult SomeUserControlAction()
{
    // ... some processing

    var url = Url.RouteUrl("routeName", new 
    { 
        action = "foo",
        controller = "bar"
    });
    Response.Redirect(url);
    return null;
}

这太丑了,我甚至提到它感到羞耻,但它确实有效。

另一种可能性是将网址作为视图模型的一部分传递给视图,并通过将window.location.href设置为新网址在javascript中执行重定向。

相关问题