2

在将页面发送到 Angular 之前,为 Razor(仅限 ASP.NET 网页,无 MVC)编写代码以执行重定向的正确方法是什么?

我在 Razor 中有一个 Angular 部分集合,我只想检查用户是否已登录。如果他们已登录,则提供该页面。如果没有,则重定向到登录部分。

编辑:我的第一次尝试是放在@{Reponse.Redirect("/myapp#/login");}页面顶部,但这只是冻结页面,可能是因为重定向发生在服务器上,但 URL 格式适用于客户端的 Angular。

编辑:我第二次尝试重定向到实际的部分使用@{Reponse.Redirect("~/partials/login.cshtml");}也冻结了。

4

2 回答 2

1

尝试各种调用 Response.Redirect 的方法都没有奏效。相反,有效的解决方案是@RenderPage在用户未登录的情况下使用呈现登录页面而不是实际内容。

@if(notLoggedIn)
{
    @RenderPage("~/views/login.cshtml");
}

else
{
    <div id="regularPageContents">
         ....
    </div>
}
于 2013-10-05T04:54:08.100 回答
0

您可以将该代码添加到负责处理 Web 请求的控制器方法中。另外,请查看AuthorizeAttributeMSDN

我建议阅读一个或多个 ASP.NET MVC 3+ 教程。

编辑:

好吧...不过,阅读教程

在页面顶部添加一个 @{ ... } 块并将您想要首先运行的任何代码放在那里。页面按顺序执行。例子:

@{
   var a = 1;
   var b = 2;
   var c = a + b;
}

...
<div>C is @c</div>
于 2013-10-05T02:46:44.823 回答