ASP.Net Выберите параметр раскрывающегося списка (в представлении) на основе значения, возвращаемого моделью EF - PullRequest
0 голосов
/ 29 апреля 2019

Для раскрывающегося списка (в виде списка выбора) в моем представлении я могу успешно установить значение для идентификатора, возвращенного моей моделью, но список не обновляется, чтобы отобразить выбранный идентификатор в качестве выбранного элемента.

<%var type = Model.CompanyTypeId; %>
<%= Html.DropDownList("Type", (ViewData["Types"] as SelectList),
        new Dictionary<string, object>()
            {
                { "class", "form-control form-input"},
                { "Id", "CoType"},
                { "Name", "CoType"},
                { "value", type },
                { "option", "selected" }
             })%>

Я ожидаю, что выпадающий список обновит выбранный элемент до соответствующего идентификатора

(В инструментах ChromeDev я могу проверить Id = Model.CompanyTypeId и option = "selected", но в раскрывающемся списке по-прежнему отображается элемент, выбранный по умолчанию.

Я ожидаю, что выпадающий список обновит выбранный элемент до соответствующего идентификатора

(В инструментах ChromeDev я могу проверить Id = Model.CompanyTypeId и option = "selected", но в раскрывающемся списке по-прежнему отображается элемент, выбранный по умолчанию.

    <select id="CoType" name="CoType" class="form-control form-input" 
     option="selected" value="1">
        <option value="-1">- Assign Type - </option>
        <option value="1">Dummy</option>
        <option value="2">Test CompanyType</option>
    </select>

1 Ответ

1 голос
/ 29 апреля 2019

Поскольку у вас уже есть Model.CompanyTypeId, вы можете легко использовать Html.DropDownListFor. Вы не устанавливаете значение в атрибутах HTML.

Контроллер

public ActionResult Index()
{
    var model = new TestModel
    {
        CompanyTypeId = 1
    };

    ViewBag.Types = new List<SelectListItem>
    {
        new SelectListItem { Value = "-1", Text = "-- Assign Type --" },
        new SelectListItem { Value = "1", Text = "Dummy" },
        new SelectListItem { Value = "2", Text = "Test" },
    };

    return View(model);
}

View

@Html.DropDownListFor(m => m.CompanyTypeId, 
    (ViewBag.Types as List<SelectListItem>),
    new Dictionary<string, object>()
    {
        { "class", "form-control form-input"},
        { "Id", "CoType"},
        { "Name", "CoType"}
     })
...