Почему связь между контроллером, представлением и моделью не работает?
Привет Команда
Мой контроллер, похоже, не работает, я создал следующую логику для создания новых пользователей в моей таблице из базы данных. Теперь проблема заключается в том, что мой идентификатор пользователя, когда он проверен, равен нулю, и как я могу улучшить это лучше?
Что я уже пробовал:
[HttpPost] [AllowAnonymous] [ValidateAntiForgeryToken] public ActionResult CreateLogin(LoginCreateModel objSubmit) { if(objSubmit.btnSubmit == "Create") { ViewBag.Message = "Details saved successfully"; } return View(objSubmit); } [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); } } namespace eNtsaPortalWebsiteProject.Models { public class LoginCreateModel { [Required] [StringLength(100,ErrorMessage = "The {0} must be least {2} characters long", MinimumLength = 6)] [DataType(DataType.Password)] [Display(Name = "Password")] public string password { get; set; } [Required] public string username { get; set; } public string btnSubmit { get; set; } } }
ZurdoDev
Вам нужно это отладить. Мы не можем запустить ваш код, поэтому я не уверен, что вы хотите, чтобы мы сделали.
gcogco10
UserID пуст, у меня есть оператор insert в этой таблице с данными. До сих пор я не могу получить только значение null, как струна на моей трассировки стека.
Richard Deeming
Таким образом, метод, который мы не видим, работает с базой данных, к которой мы не можем получить доступ, используя входные данные, которые мы также не видим, - это перенастройка null
.
И вы думаете, что мы можем отладить это для вас?
Все, что я могу предложить, это чтобы вы переместили GetUserID_By_UserName
и GetRoleBy_UserID
звонки внутри здания if (success)
ветвь, так как они нужны только в том случае, если вход в систему будет успешным.
Кроме того, вам нужно будет отладить свой код.