如何从我所在区域视图的.cshtml页面重定向到普通控制器的ActionResult?
我有一个普通/管理员用户的常用登录界面。 所以基于usertype的json结果将返回用户类型。 所以现在我想基于usertype重定向用户。
如果用户是普通用户,那么我可以使用重定向他
"var redirectUrl = '@Url.Action("Index", "Home")';"
然后"window.location.href = redirectUrl;"
上面的代码工作正常。
但是在下列情况下该怎么办? 如果用户是管理员,那么我想将他重定向到"索引" ActionResult" HomeController"它存在于" Admin"区域。
答案 0 :(得分:2)
要在区域外重定向,请使用区域的空白字符串:
@Url.Action("Index", "Home", new { area = "" })
这将默认您返回该区域外的HomeController
。
答案 1 :(得分:1)
如果我理解正确,你的链接上只需要一些条件逻辑。
@{
var redirectUrl = Url.Action("Index", "Home", new { area = "" })
if (this.User.IsInRole("Administrator"))
{
redirectUrl = Url.Action("Index", "Home", new { area = "Admin" })
}
}
<script>
var redirectUrl = '@redirectUrl';
window.location.href = redirectUrl;
</script>
虽然,更好的选择可能是制作自己的HTML helper extension method,以便您可以在其他地方重复使用逻辑。
答案 2 :(得分:1)
最后,下面的语法对我有用。
var adminHomePageUrl = '@Url.Action("Index","Home", new { area = "Admin" })';