Hi Team
I want to make my controller functional to my model and view, that the application does correcttly it validates user inputs only. I want my create button, to create new user if not exist to my database and cant seem to make this logic right and need some help and guidance.
- Controller:
- [HttpPost]
- [AllowAnonymous]
- [ValidateAntiForgeryToken]
- public ActionResult Create(CreateModel objSubmit)
- {
- ViewBag.Msg = "Details submitted successfully";
- return View(objSubmit);
- }
- // This is for login, and its hits this method each time.
- [HttpPost]
- [AllowAnonymous]
- [ValidateAntiForgeryToken]
- public ActionResult Login(Login login)
- {
- if (ModelState.IsValid)
- {
- bool success = WebSecurity.Login(login.username, login.password, false);
- var UserID = GetUserID_By_UserName(login.username);
- var LoginType = GetRoleBy_UserID(Convert.ToString(UserID));
- if (success == true)
- {
- if (string.IsNullOrEmpty(Convert.ToString(LoginType)))
- {
- ModelState.AddModelError("Error", "Rights to User are not Provide Contact to Admin");
- return View(login);
- }
- else
- {
- Session["Name"] = login.username;
- Session["UserID"] = UserID;
- Session["LoginType"] = LoginType;
- if (Roles.IsUserInRole(login.username, "Admin"))
- {
- return RedirectToAction("AdminDashboard", "Dashboard");
- }
- else
- {
- return RedirectToAction("UserDashboard", "Dashboard");
- }
- }
- }
- else
- {
- ModelState.AddModelError("Error", "Please enter valid Username and Password");
- return View(login);
- }
- }
- else
- {
- ModelState.AddModelError("Error", "Please enter Username and Password");
- return View(login);
- }
- }
- Model:
- namespace eNtsaPortalWebsiteProject.Models
- {
- public class CreateModel
- {
- [Required]
- [StringLength(100, ErrorMessage = "The {0} must be at least {2} characters long.", MinimumLength = 6)]
- [DataType(DataType.Password)]
- [Display(Name = "Password")]
- public string password { get; set; }
- [Required]
- public string username { get; set; }
- }
- }
- // View for login
- class="col-md-12 col-md-offset-10 col-xs-12">class="loginPage panel-info">
- class="">class="glyphicon glyphicon-user">Username:
class="form-group text-center">- @Html.TextBoxFor(model => model.username, new { @class = "form-control text-center", autocomplete = "off" })
- @Html.ValidationMessageFor(model => model.username)
class="form-group">- class="">class="glyphicon glyphicon-user">Password:
- @Html.PasswordFor(model => model.password, new { @class = "form-control text-center", autocomplete = "off" })
- @Html.ValidationMessageFor(model => model.password)
class="form-group">- "BtnLogin" type="submit" class="btn btn-success btn-pressure" name="BtnLogin" value="Login" />
- "BntCreate" type ="submit" class="btn btn-info btn-pressure" name="BtnCreate" value="Create" />
- View for creating user:
- class="col-md-12 col-md-offset-10 col-xs-12">class="glyphicon-registration-mark">class="">class="glyphicon glyphicon-user">Username:class="form-group text-center">
- @Html.TextBoxFor(model=>model.username, new {@class ="form-control text-center", automplete="off" })
- @Html.ValidationMessageFor(model=>model.username)
class="form-group">- class="">class="glyphicon glyphicon-user">Password:
- @Html.PasswordFor(model=>model.password, new {@class = "form-control text-center", autocomplete="off" })
- @Html.ValidationMessageFor(model=>model.password)
- class="form-group">class="col-md-offset-2 col-md-10">
- "BtnSubmit" type="submit" class="btn btn-success btn-pressure" name="BtnSubmit" value="Submit"/>
- }
Replies
Know the answer? Post it — somebody with the same question will find it here.