троичный оператор в элементе option в ядре asp.net - PullRequest
0 голосов
/ 21 октября 2018

Я использую ядро ​​asp.net 2.1 и хочу использовать элемент selected option и устанавливать в нем значения вручную, как показано ниже:

<select>
   <option selected="@(typeCar== "Volvo" ? "selected" : string.Empty)" value="volvo">Volvo</option>
   <option selected="@(typeCar== "Saab" ? "selected" : string.Empty)" value="saab">Saab</option>
   <option value="vw">VW</option>
   <option value="audi">Audi</option>
</select>

, но когда я хотел использовать троичный оператор воба из них selected="selected" равны selected="" Таким образом, выбраны два параметра, и, по-видимому, нет никакой разницы между selected="selected" и selected="", например, когда typeCar=Volvo просмотр источника страницы в браузере выглядит следующим образом:

    <select>
       <option selected="selected" value="volvo">Volvo</option>
       <option selected="" value="saab">Saab</option>
       <option value="vw">VW</option>
       <option value="audi">Audi</option>
    </select>

и второй вариант выбран!как я могу решить эту проблему?

Ответы [ 2 ]

0 голосов
/ 22 октября 2018

Возвращает ноль из вашей троицы вместо string.Empty.Если значение атрибута равно нулю, Razor удалит его автоматически, но, поскольку вы устанавливаете его на что-то , даже если это просто пустая строка, оно будет сохраняться.

<select>
    <option selected="@(typeCar== "Volvo" ? "selected" : null)" value="volvo">Volvo</option>
    <option selected="@(typeCar== "Saab" ? "selected" : null)" value="saab">Saab</option>
    <option value="vw">VW</option>
    <option value="audi">Audi</option>
</select>
0 голосов
/ 22 октября 2018

Как сказал Shyju, вы не можете использовать выражение троичного оператора для создания атрибута selected, как это делает ваш текущий пример.Используйте выражение JS / jQuery, как в этом примере:

$('select').append('<option value="' + typeCar + '"' + (typeCar == 'somevalue') ? ' selected="selected"' : '') + '>' + typeCar + '</option>';

Или просто используйте <select> tag helper:

<select asp-for="TypeCar" asp-items="Model.Cars"></select>

, который заполняется из списка, который содержит SelectListItem:

public List<SelectListItem> Cars { get; set; } = CarsList.Select(x => new SelectListItem { Text = x.CarName, Value = x.CarId, Selected = x.IsSelected }).ToList();

Дополнительная ссылка: Помощники по основным тегам ASP.NET

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