Установка выбранного по умолчанию значения selectlist внутри шаблона редактора
У меня есть этот код для установки значения по умолчанию моего списка выбора:
public ActionResult Register()
{
IList<Country> countryList = _countryRepository.GetAllCountry();
var registerViewModel = new RegisterViewModel
{
CountryId = 52,
CountryList = new SelectList(countryList, "CountryId", "CountryName", "Select Country")
};
return View(registerViewModel);
}
У меня есть это на мой взгляд, и это работает хорошо устанавливает значение выбранной страны на 52:
<%: Html.DropDownListFor(model => model.CountryId, Model.CountryList ,"Select Country") %>
Однако, когда я создаю шаблон редактора для этого, значение по умолчанию для страны не выбирается
Итак, я изменяю свой текущий взгляд на это:
<%: Html.EditorFor(model => model.CountryId,new { countries = Model.CountryList}) %>
Затем я создаю свой шаблон редактора следующим образом:
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<System.Int64?>" %>
<%= Html.DropDownList(
String.Empty /* */,
(SelectList)ViewData["countries"],
"Select Country"
)
%>
2 ответа
Я решил это, заменив код в моем контроллере на:
CountryList = new SelectList(countryList, "CountryId", "CountryName",52 /*Default Country Id*/)
Если у вас есть лучшие решения, пожалуйста, дайте мне знать. Я изменю принятый ответ.
Добавьте это к вашему контроллеру:
ViewData["CountryList"] = new SelectList(_countryRepository.GetAllCountry(), 52);
Затем на странице просмотра вызовите раскрывающийся список следующим образом:
@Html.DropDownList("Countries", ViewData["CountryList"] as SelectList)
Различные способы архивировать это, это один из способов
Шаг 1: Установите значение, которое вы должны выбрать по умолчанию. здесь я прошел 0 или 2
ViewBag.AssessmentfrezeId = IsUserHavefreeAssessment == false ? 2 : 0;
Шаг 2: К Cshtml добавили выбранное значение как показано ниже.
@Html.DropDownListFor(m => m.TestID, new SelectList(Model.Slots, "Id", "TimeSlot", @ViewBag.AssessmentfrezeId), "--Select--", new { @class = "form-control" })