ナビゲーションバーのドロップダウンからログインしようとしていますが、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();
}
解決策: メイン ページに、部分ビューがレンダリングされるフォーム タグが含まれているため、エラーが発生していました。これにより、ホームページ (インデックス関数) にリダイレクトされます。