Blazor - обязательное поле выбора, созданное с использованием строки разметки - PullRequest
1 голос
/ 10 февраля 2020

Я пытаюсь связать значение поля выбора, которое должно быть сгенерировано через строку разметки. Выбор выглядит нормально, но значение не связано как задумано. Как я могу исправить свой код так, чтобы поле выбора могло быть связано с переменной Возможное Значение?

<p>
    @selectBarGeneration
    Your selected value is @possibleValue
</p>

@code {

    public string possibleValue;
    private MarkupString selectBarGeneration = new MarkupString("<select @bind=\"possibleValue\"><option>Default</option><option>Option 2</option></select>");

}

1 Ответ

1 голос
/ 10 февраля 2020

MarkupString не используется для логики c, она предназначена для отображения необработанных HTML строк. Попытка поместить logi c в raw HTML является проблемой безопасности.

Вместо использования MarkupString создайте список выбора с помощью Razor или, что еще лучше, используйте компонент InputSelect.

<select @bind="@selectedValue">
            @foreach (var item in selectListItems)
            {
                <option value="@item">@item</option>
            }
        }
</select>

@code {
     string selectedValue ="";
     string[] selectListItemsv = { ... };
}
    <InputSelect @bind-Value="model.SelectedItemString" class="form-control">
           @foreach (var cnt in model.Countries)
           {
               <option value="@cnt.Id">@cnt.Name</option>
           }
     </InputSelect>

Третий вариант - использовать готовые компоненты, подобные этим: https://telerik.com/blazor-ui

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...