Как динамически добавить выбранный атрибут к элементу параметра в ASP MVC Core - PullRequest
0 голосов
/ 06 ноября 2019

Я хотел бы добавить выбранный тег атрибута в опцию выбора на основе значения в модели, которое передается в представление. Следующий код приводит к ошибке, которая гласит: «не должно быть c # в области объявления атрибута elements». Я не уверен, как это сделать элегантно или правильно.

<select class="custom-select-sm" name="[@(i)].User" id="userSelect">
                        @foreach (var user in Model.Users)
                        {
                            string selText;
                            if (Model.Listings[i].User.ID == user.ID)
                                selText = "selected";
                            else
                                selText = string.Empty;

                            <option value="@user.ID" @selText>@user.Name</option>;
                        }
                    </select>

1 Ответ

0 голосов
/ 06 ноября 2019

простой способ:

<option value="@user.ID" @((Model.Listings[i].User.ID == user.ID)?"selected":"")>@user.Name</option>

или используйте Razor @functions:

<option value="@user.ID" @(SetSelectedClass(Model.Listings[i].User.ID,user.ID))>@user.Name</option>


@functions{
    public string SetSelectedClass(string modelUserId,string userId)
    {
       return (modelUserId==userId)?"selected":"";
    }
}

о Razor @functions:

https://docs.microsoft.com/en-us/aspnet/core/mvc/views/razor?view=aspnetcore-3.0#functions

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