Razor Redirect for Angular Partials

时间:2013-10-05 02:43:31

标签: asp.net angularjs razor

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

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

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

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

2 个答案:

答案 0 :(得分:1)

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

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

else
{
    <div id="regularPageContents">
         ....
    </div>
}

答案 1 :(得分:0)

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

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

编辑:

好的......然后,请阅读tutorial

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

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

...
<div>C is @c</div>