Установка выбранного по умолчанию значения 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" })
Другие вопросы по тегам