Как привязать динамические значения в выпадающем списке в MVC
у меня есть выпадающий список в форме(представлении), текст и значения которой я связываю из базы данных, я хочу сохранить выбранное значение drodown в базе данных на кнопке отправки формы.
выпадающие значения и текст привязываются в выпадающем списке , но на кнопке отправки
"Objectournamentregistration.COUNTRY_ID" равен нулю
Что я уже пробовал:
метод действия для вызова представления
public ActionResult TOURNAMENT_PROFILE() { objSQLHeplper = new SQLHelper(); objCommonClass = new CommonClass(); HttpCookie cookie = Request.Cookies["userInfo"]; ObjTournamentDetail = new TournamentRegistration(); if (Request.Cookies["UserName"] != null && Request.Cookies["UserPassword"] != null ) { UserName = Request.Cookies["UserName"].Value.ToString(); Password = Request.Cookies["UserPassword"].Value.ToString(); ObjMenuName = objCommonClass.UserLoin(UserName, Password); if (ObjMenuName != null) { ObjMenuName = null; dt= new DataTable(); dt = objCommonClass.GETCOUNTRY(); List<SelectListItem> OblListTournamentRegistration = new List<SelectListItem>(); foreach(DataRow dr in dt.Rows) { OblListTournamentRegistration.Add(new SelectListItem() { Text = dr["COUNTRY_NAME"].ToString(), Value = dr["COUNTRY_ID"].ToString() }); } ViewBag.Country = OblListTournamentRegistration; if (Session["ErrorMessage"] != null) { ViewBag.ALertMessage = Session["ErrorMessage"].ToString(); ViewBag.JavaScriptFunction = string.Format("FailMessagePopup('{0}');", AlertMessage); } else if (Session["SuceessMessage"] != null) { ViewBag.ALertMessage = Session["SuceessMessage"].ToString(); ViewBag.JavaScriptFunction = string.Format("SuccessMessagePopup('{0}');", AlertMessage); } return View("TournamentRegistration"); } else { return RedirectToAction("MainPage", "Home"); } } else { return RedirectToAction("MainPage", "Home"); } }
вид
@Html.DropDownListFor(model => model.COUNTRY_NAME, new SelectList(ViewBag.Country, "Value", "Text"), new { @class = "form-control glyphicon glyphicon-user", @value = "", placeholder = "Tournament Name", id = "txtTournamentName" })
способ действия на кнопке Отправить
public ActionResult TournamentRegistration(TournamentRegistration ObjTournamentRegistration) { try { MySqlConnection connection = new MySqlConnection(SQLHelper.ConnectionString); connection.Open(); MySqlCommand cmd = new MySqlCommand("TOURNAMENT_REGISTRATION", connection); cmd.CommandType = CommandType.StoredProcedure; cmd.Parameters.AddWithValue( cmd.Parameters.AddWithValue("@PI_COUNTRY", ObjTournamentRegistration.COUNTRY_ID); .ToString()); cmd.ExecuteNonQuery(); TournamentLogo=null; Session["SuceessMessage"] = "Sucessfull Registered"; return RedirectToAction("TOURNAMENT_PROFILE", "MainPageMenuBar"); } catch (Exception ex) { Session["ErrorMessage"] = "Something Went Wrong"; return RedirectToAction("TOURNAMENT_PROFILE", "MainPageMenuBar"); } } }
Richard Deeming
Request.Cookies["UserPassword"]
Нет, нет, нет, нет, нет, - Нет!!!!
НИКОГДА храните учетные данные пользователя в файлах cookie.
Вы проверяете учетные данные однажды, и генерировать криптографически безопасный токен аутентификации. Вы храните маркер аутентификации в файле cookie, помеченном как HTTP-only, предпочтительно помеченный как "безопасный" и "тот же сайт". При последующих запросах вы извлекаете маркер аутентификации и проверяете его.
Вы также убедитесь, что вы никогда храните пароль пользователя в виде обычного текста или с помощью обратимого шифрования. Вы всегда храните только соленый хэш пароля, используя уникальную соль на запись и используя несколько раундов функции вывода ключа, такой как PBKDF2 или bcrypt.
Но вам не нужно делать ничего из этого самостоятельно. ASP.NET уже есть совершенно хорошие встроенные системы аутентификации и авторизации. Используйте их вместо этого.
Безопасность, аутентификация и авторизация с помощью ASP.NET MVC[^]
Личность ASP.NET [^]