Установка выбранного по умолчанию значения selectlist внутри шаблона редактора - PullRequest
3 голосов
/ 20 декабря 2010

У меня есть этот код, чтобы установить значение по умолчанию для моего списка выбора:

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"
    )
%>

Ответы [ 3 ]

10 голосов
/ 20 декабря 2010

Я решил эту проблему, заменив код в моем контроллере на:

CountryList = new SelectList(countryList, "CountryId", "CountryName",52 /*Default Country Id*/)

Если у вас есть лучшие решения, пожалуйста, дайте мне знать.Я изменю принятый ответ.

1 голос
/ 10 марта 2011

Добавьте это к вашему контроллеру:

ViewData["CountryList"] = new SelectList(_countryRepository.GetAllCountry(), 52);

Затем на странице просмотра вызовите раскрывающийся список следующим образом:

@Html.DropDownList("Countries", ViewData["CountryList"] as SelectList)
0 голосов
/ 29 апреля 2019

Различные способы архивировать это, Это один из способов


Шаг 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" })
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...