1

ASP.Net MVC4 Razorを使用しています。リダイレクトに問題があります。ユーザーログイン時にユーザーをホームコントローラーにリダイレクトしたい(ログインが有効な場合)。しかし、私の問題は、リダイレクト方法も起動しても、常にログインページに戻ってくることです。

これが私のコードです..

public class LoginController : Controller
{
    public ActionResult Index()
    {
        return View();
    }

    public ActionResult LoginAccess()
    {
        return RedirectToAction("Index", "Home");
    }

}

ログインページ..

<div class="body_wraper">
<div id="cloud" style="background:url('@Url.Content("~\\Content\\cloud.png")');">
    <div id="login_form">
        <div class="Three-Dee">Login here..</div>
         <table>
            <tbody>
                <tr>
                    <td>@Html.Label("Username")</td>
                    <td></td>
                    <td>@Html.TextBox("txtUsername")</td>
                </tr>
                <tr>
                    <td>@Html.Label("Password")</td>
                    <td></td>
                    <td>@Html.Password("txtPassword")</td>
                </tr>
                <tr>
                    <td></td>
                    <td></td>
                    <td style="text-align:right;"><button class="k-button" id="login" onclick="Login()">Login</button></td>
                </tr>
            </tbody>
         </table>
    </div>
</div>

<script type="text/javascript">

function Login() {
    $.ajax({
        url: '@Url.Content("~/Login/LoginAccess")',
        type: 'POST'
    });
}

ホームコントローラー..

public ActionResult Index()
    {
        Session["UserName"] = "Administrator";
        string menu = this.GetMenu();
        ViewBag.ManueItems = menu;
        return View("User");
    }

ログインボタンをクリックすると、LoginコントローラーのLoginAccessになり、次にHomeコントローラーのIndexメソッドになりますが、「ユーザービュー」は表示されません。しかし、URL >>( host__/Login/LoginAccess">http://__ host __/Login/LoginAccess )を入力して確認すると、正常に動作しています。 この問題を解決するのを手伝ってください。ありがとう.. :)

4

4 に答える 4

1

Ajax通話中は、コントローラーからリダイレクトを強制することはできません。これは、次の 2 つの方法で修正できます。

  1. ajax 呼び出しを通常の get に置き換えます。
  2. アクションから json を返し、javascript からのリダイレクトを使用する
于 2013-08-19T10:20:47.213 に答える