У меня есть ddl, который заполнен часами 01-23 дня. Это относится к форме, которая используется для заказа предмета оборудования. Час заполняется в поле db. Проблема заключается в том, что, когда форма бронирования открывается, чтобы изменить время, в течение которого ddl показывает час, который был забронирован, когда он был изменен, и форма отправлена, значение, переданное по почте, является начальным значением из db, а не новым выбранным часом.MVC Значение ddl после обратной передачи
это основные фрагменты кода. любая идея, почему недавно выбранное значение ddl не передается модели?
Посмотреть
<%= Html.DropDownList("ddl_Hour", Model.ddlHour,
new { @class = "DropDown", style = "width: 40px” })%>
Модель
private string _ddlHourSelectedValue = "0";
public SelectList ddlHour
{
get
{
return (new System.Web.Mvc.SelectList(_ddlHour, "intValue", "Text", Convert.ToInt32(_ddlHourSelectedValue)));
}
}
public string ddlHourSelectedValue
{
get
{
return _ddlHourSelectedValue;
}
set
{
_ddlHourSelectedValue = value;
}
}
param[6] = new SqlParameter("@Timeslot", ddlHourSelectedValue);
Извините, моя копия была неправильной. Я внесла поправки. Модель имеет переменную общественного SelectList ddlHour – user1071017
Проблема такова: '<% Html.DropDownList = ("ddl_Hour", Model.ddlHour, новый {@class = "DropDown", стиль =«ширина: 40px "})%>' Отправляет выбранное значение выпадающего списка в приложение с идентификатором «ddl_Hour». Поскольку в вашей модели с тем же именем нет строковой переменной, она не будет автоматически доступна вам. Если вы переименуете переменную 'public string ddlHourSelectedValue' в' ddl_Hour', вы должны найти значение, которое вы выбрали, и сообщение будет заполнено в вашей модели. –
Отлично, теперь работает. Спасибо за вашу помощь – user1071017