Greetings, I've been using webforms for a long time and last week moved to mvc and I'm having trouble managing login.
Httpget gets the data if I have it in login view , what I'm tring to do is get input data from _Layout.cshtml
// User controll
[HttpGet] public ActionResult LogIn() { // Pass values to user return View(); } [HttpPost] public ActionResult LogIn(Models.UserModel user) { //check if the model that view is sending back to us is valid if (ModelState.IsValid) { if (isValid(user.Email, user.Password)) { FormsAuthentication.SetAuthCookie(user.Email, false); return RedirectToAction("Index", "User"); } else { ModelState.AddModelError("", "Login Data is incorrect."); } } return View(user); }
//Login View
@model fusiondigentmvc4webapp.Models.UserModel @{ ViewBag.Title = "Login"; Layout = "~/Views/Shared/_Layout.cshtml"; }<h2>Login</h2> @using (Html.BeginForm()) { @Html.ValidationSummary(true, "Login failed. CHeck your login details") //validate<div><fieldset><legend>Login</legend> <div>@Html.LabelFor(u => u.Email)</div> <!--email is picking up from model--><div> @Html.TextBoxFor(u => u.Email) @Html.ValidationMessageFor(u => u.Email)</div><div>@Html.LabelFor(u => u.Password)</div><div> @Html.PasswordFor(u => u.Password) @Html.ValidationMessageFor(u => u.Password)</div><input type="submit" value="Log In" /></fieldset></div>
// _Layout.cshtml
<!--Login-------------------------------------><ul class="nav navbar-nav pull-left"><li class="dropdown" id="menuLogin"><a class="dropdown-toggle" href="#" data-toggle="dropdown" id="navLogin">Login</a><div class="dropdown-menu" style="padding:17px;"> @using (Html.BeginForm()) { @Html.ValidationSummary(true, "Login failed. CHeck your login details") <div><fieldset><legend>Login</legend><div>@Html.LabelFor(u => u.Email)</div> <!--email is picking up from model--><div> @Html.TextBoxFor(u => u.Email) @Html.ValidationMessageFor(u => u.Email)</div><div> @Html.LabelFor(u => u.Password)</div><div> @Html.PasswordFor(u => u.Password) @Html.ValidationMessageFor(u => u.Password)</div><input type="submit" value="Log In" /></fieldset></div> }<form><a href="#" title="Fast and free sign up!" id="btnNewUser" data-toggle="collapse" data-target="#formRegister">New User? Sign-up..</a></form><form id="formRegister" class="form collapse"> @using (Html.BeginForm()) { @Html.ValidationSummary(true, "Create user failed, check your fields.")<div><fieldset><legend>Register</legend><div>@Html.LabelFor(u => u.Email)</div><div> @Html.TextBoxFor(u => u.Email) @Html.ValidationMessageFor(u => u.Email)</div><div>@Html.LabelFor(u => u.Password)</div><div> @Html.PasswordFor(u => u.Password) @Html.ValidationMessageFor(u => u.Password)</div><input type="submit" value="Create User" /></fieldset></div> }</form></div></li></ul><!--Login-End---------------------------------->
Any help is appreciated.
P.S Registration also is in Registration view and not in the _layout