2

ページが Angular に送信される前にリダイレクトを実行する Razor (ASP.NET Web ページのみ、MVC なし) のコードを記述する適切な方法は何ですか?

Razor に Angular パーシャルのコレクションがあり、ユーザーがログインしているかどうかを確認したいだけです。ログインしている場合は、ページを提供します。そうでない場合は、ログイン パーシャルにリダイレクトします。

編集:私の最初の試みは@{Reponse.Redirect("/myapp#/login");}ページの上部に配置することでしたが、リダイレクトはサーバーで発生しますが、URL 形式はクライアント側の Angular 用である可能性が高いため、ページがフリーズします。

編集: を使用して実際のパーシャルにリダイレクトする 2 回目の試み@{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 要求の処理を担当するコントローラー メソッドに追加します。また、チェックアウトAuthorizeAttribute( MSDN )

1 つ以上の 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 に答える