Установить значение по умолчанию в Tag helper .net core - PullRequest
0 голосов
/ 22 февраля 2019

У меня есть список dropdown на моей странице, который использует список enum для привязки.

Мой enum выглядит как

  public enum PaymentType
    {
        /// <summary>
        /// The Cash
        /// </summary>
        Cash = 0,

        /// <summary>
        /// The Credit
        /// </summary>
        Credit = 1,

        /// <summary>
        /// The Debit
        /// </summary>
        Debit = 2
    }

И я связываю это перечисление с выпадающим списком, как показано ниже

   <select class="select-text" id="paymentType"  asp-
for="PurchaseOrder.PaymentType" required asp-items="@(new 
SelectList(Model.PaymentTypes, "Id", "Name"))">

<option selected="selected" value ="">--Select payment type--</option>
   </select>

Проблема как PurchaseOrder.PaymentType являетсяцелое число, так что здесь значение по умолчанию приходит как 0, и это делает мой dropdown всегда выбранным Cash.Я знаю, что PurchaseOrder.PaymentType nullable - это вариант, но я хочу, чтобы файл не обнулялся.

Я устал добавить value="" в выборку, также пытался selected="selected" в опции по умолчанию, но ничего не работает.

Может ли кто-нибудь помочь мне решить эту проблему с помощью синтаксиса тегов?

Ответы [ 2 ]

0 голосов
/ 22 февраля 2019

Поскольку у вас есть «пустая» опция, свойство PaymentType вашего заказа на покупку должно иметь значение NULL.Вы можете использовать атрибут [Required] для него, чтобы обеспечить фактическое предоставление пользователем значения.

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

0 голосов
/ 22 февраля 2019

Вам нужна перегрузка SelectList (IEnumerable, String, String, Object, String) .

Инициализирует новый экземпляр класса SelectList, используя указанные элементы для списка, поля значений данных, текстового поля данных, выбранного значения и поля группы данных.

например, в вашем коде:

SelectList(Model.PaymentTypes, "Id", "Name", 1)
...