2017-01-19 19 views
1

私はWebForms ASP.NETプロジェクトをMVCに移植しています。MVCの方法についてはわかりません。MVC _layout.cshtmlファイルのグローバルアクションメソッド

WebFormsプロジェクトには、ログアウトボタン付きのマスターページがあり、すべてのページの右上に表示されます。

<div class="userTableElementLogout"> 
    <asp:Button ID="LogOffButton" runat="server" OnClick="LogOffButton_Clicked" Text="LOG OFF" CausesValidation="false" /> 
</div> 

そして、マスターページの分離コードファイル内の

<div class="userTableElementLogout"> 
    <input type="submit" name="ctl01$LogOffButton" value="LOG OFF" id="log-off-button"> 
</div> 

そして私は、ビューの複数のコントローラを持っている:私のMVCプロジェクトでそう

protected void LogOffButton_Clicked(object sender, EventArgs e) 
{ 
    // Logout logic 
} 

、_layout.cshtmlファイル、私はこれを持っています_layout.cshtmlファイルを使用します。

ボタンのクリックを処理するメソッド/アクションを作成するにはどうすればよいですか?

答えて

0

フォームタグ内にこの送信ボタンを置いておき、アクションタグを実行してログオフロジックを実行することができます。

@using(Html.BeginForm("Logoff","Account")) 
{ 
    <div class="userTableElementLogout"> 
     <input type="submit" value="LOG OFF" id="log-off-button"> 
    </div> 
} 

あなたは上記のログアウトロジックを持っているAccountコントローラでHttpPost Logoffアクションメソッドを持っていると仮定すると。

必要に応じて、HttpGetアクションメソッド(Logoff)の1つにGETリクエストを行うanchorタグをそのまま使用することもできます。

1
  1. ヘッダーにログアウトボタンがあります。

  2. 使用jQueryのかHtml.ActionLinkがあなたのボタンとコントローラ/アクションメソッドの間のリンクを作るために、ここでは

  3. がボタンを持っているであろう、名前_LoginPartialとレイアウトの部分図をお持ちのアカウント/ログオフする必要がありますまたは画像

    <ul class="nav navbar-nav navbar-right"> 
        <li id="logOff" class="image-style"> 
         <img class="lhs" style="max-height: 30px; max-width: 30px;" src="@Url.Content("~/Images/logOut.png")" alt="Logout" title="Logout" /> 
        </li> 
    </ul> 
    
  4. のように今、あなたはそれがAJAX呼び出しを使用してアカウントコントローラであなたのログオフメソッドを呼び出すことができます。

  5. 良い方法はjQueryのを使用している、それはあなたが多くのカスタマイズを持っていることができますアカウントコントローラに

    public ActionResult LogOff() { 
        this.AuthenticationManager.SignOut(); 
        // your logout logic here 
        return this.RedirectToAction("Index", "Account"); 
    } 
    

をこのメソッドを作成します。

アカウントコントローラは、ログイン/ログアウトのロジックを置く場所で、インデックスメソッドはログインページ用の場所です。

関連する問題