我的任务是创建一个用户控件,以便在我们的母版页中生活,允许用户在帐户之间切换。这样,我们就可以允许用户更改帐户,而无需返回帐户页面。这似乎是一个合法且完全直截了当的任务。
我已经构建了控件并使用Html.RenderAction将其添加到母版页。最后一步是让我将用户重定向到该帐户的主页。为此,我构建了一个到主页的路由,并尝试返回RedirectToRoute(路由)。
当我尝试这个时,我收到了这个错误:
Child actions are not allowed to perform redirect actions
任何人对如何解决这个问题有任何想法,或者我已将自己编入一个框
提前致谢
答案 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中执行重定向。