0

ナビゲーションバーのドロップダウンからログインしようとしていますが、signinボタンをクリックすると、フォームは定義されていてもgetメソッドとして送信されますFormMethod.Postが、それでもgetメソッドを使用して送信され、すべての値がQueryString ここに表示されます私のコードと画像です ここに画像の説明を入力

そしてクリック後Signin ここに画像の説明を入力

コード:

 @using(Html.BeginForm("Login","Auth",FormMethod.Post,null))
            {
 @Html.TextBoxFor(m=>m.Email,new{@style = "margin-bottom: 15px;",@placeholder = "Email address",@size = "30",@type = "email",@required = ""})

 @Html.PasswordFor(m=>m.Password,new{@style = "margin-bottom: 15px;",@placeholder = "Password",@size = "30"})

 @Html.CheckBoxFor(m => m.RememberMe, new { @style = "float: left; margin-right: 10px;" })
 @Html.LabelFor(m=>m.RememberMe)
 <input class="btn btn-primary" style="clear: left; width: 100%; height: 32px; font-size: 13px;" type="submit" value="Sign In" />
            }

コントローラーコード

[HttpGet]
    public ActionResult Login(string returl)
    {
        if (!User.Identity.IsAuthenticated)
        {
            ViewBag.returl = returl;
            return View();
        }
        string[] arr1 = System.Web.Security.Roles.GetRolesForUser(User.Identity.Name);
        foreach (var v in arr1)
        {
            if (v.Contains("Administrator"))
            {
                return RedirectToAction("Index", "Admin");
            }
            else
            {
                return RedirectToAction("Index", "Home");
            }
        }
        return RedirectToAction("Index", "Home");
    }

    [HttpPost]
    public ActionResult Login(Login log, string returl)
    {
        if (ModelState.IsValid && Membership.ValidateUser(log.Email, log.Password))
        {
            if (((MyMembershipProvider)Membership.Provider).IsActive(log.Email))
            {
                FormsAuthentication.SetAuthCookie(log.Email, log.RememberMe);
                string[] arr = System.Web.Security.Roles.GetRolesForUser(log.Email);
                if (returl != null)
                {
                    foreach (var v in arr)
                    {
                        if (v.Contains("Administrator"))
                        {
                            return RedirectToAction("Index", "Admin");
                        }
                        else
                        {
                            return Redirect(returl);
                        }
                    }
                }
                else
                {
                    foreach (var v in arr)
                    {
                        if (v.Contains("Administrator"))
                        {
                            return RedirectToAction("Index", "Admin");
                        }
                        else
                        {
                            return RedirectToAction("Index", "Home");
                        }
                    }
                }
            }
            else
            {
                ModelState.AddModelError("", "Please confirm ur email to Login!!!!");
            }
        }
        else
        {
            ModelState.AddModelError("", "Incorrect username or password!!!");
        }
        return View();
    }

解決策: メイン ページに、部分ビューがレンダリングされるフォーム タグが含まれているため、エラーが発生していました。これにより、ホームページ (インデックス関数) にリダイレクトされます。

4

0 に答える 0