Html.GetEnumSelectList и предварительно выбранные значения (страница редактирования) - PullRequest
0 голосов
/ 04 апреля 2019
    public enum PageType
    {
        [Display(Name = "Brak")]
        None = 0,
        [Display(Name = "Strona")]
        Page = 1,
        [Display(Name = "Sklep")]
        Shop = 2,
        [Display(Name = "Error")]
        Error = 3
    } 

Просмотр модели - ValueTypeEditViewModel содержит ValueTypeModel, которые имеют Conroller (string)

для раскрывающегося списка Я использую:

        <div class="form-group">
            <label asp-for="ValueType.Controller" class="m-1"></label>
            <div><span asp-validation-for="ValueType.Controller" class="text-danger"></span></div>
            <select class="custom-select" asp-for="ValueType.Controller" asp-items="Html.GetEnumSelectList<ValueTypeModel.PageType>()"></select>
        </div>

которые генерируютотлично выпадающий, но при редактировании ранее выбранной страницы Value Type.Controller не выбирает.Прежде чем сохранить значение, я должен сделать некоторую логику со значением, которое представляет собой число (строку), чтобы передать его в имя и сохранить слово.Эта работа, как я выбираю [Display(Name = "Strona")] Page = 1,, тогда Value Type.Controller является строкой 1, и мне нужно найти имя и сохранить в db Page

Вопрос как сделать выпадающийс ранее выбранным значением

1 Ответ

0 голосов
/ 04 апреля 2019

это не совсем полный ответ - просто неприятное решение проблема

    <div class="form-group">
        <label asp-for="ValueType.Controller" class="m-1"></label>
        <div><span asp-validation-for="ValueType.Controller" class="text-danger"></span></div>
        <select class="custom-select" asp-for="ValueType.Controller">
            @foreach (var e in Enum.GetValues(typeof(ValueTypeModel.PageType)).Cast<int>())
            {
                if (Enum.GetName(typeof(ValueTypeModel.PageType), e) == Model.ValueType.Controller)
                {
                    <option value="@e.ToString()" selected>@Enum.GetName(typeof(ValueTypeModel.PageType), e)</option>
                }
                else
                {
                    <option value="@e.ToString()">@Enum.GetName(typeof(ValueTypeModel.PageType), e)</option>
                }
            }
        </select>
    </div>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...