Dropdown asp. net core Установить выбранный пункт - PullRequest
0 голосов
/ 23 апреля 2020

Мне нужно установить выбранный элемент в выпадающем списке

<div class="form-group">
    <label asp-for="Transaction.CCurrency" class="control-label"> Currency </label>

    @(Html.DropDownList("CurrencyDropDownList", Model.Currency, "--Choose currency--", new { @class = "form-control" }))

    <span asp-validation-for="CurrencyDropDownList" class="text-danger"></span>
</div>

Я заполняю его в контроллере

model.Currency = database.ZCurrency.Where(x => x.LActive == true).Select(c => new SelectListItem
                 {
                     Value = c.CCode.ToString(),
                     Text = c.CName,
                 });

Это на мой взгляд модель

public IEnumerable<SelectListItem> Currency { get; set; }

Тем не менее, я понятия не имею, как установить его из моей базы данных, я могу добраться до CCode и Cname через него, но не как его установить. Это в моей форме РЕДАКТИРОВАТЬ, где мне нужно увидеть, какое значение я имел раньше, и переустановить его на другое, если это необходимо.

Большое спасибо, буду признателен за любую помощь.

1 Ответ

0 голосов
/ 24 апреля 2020

Вы можете просто установить выбранное свойство как true в SelectListItem, что сделает этот параметр выбранным по умолчанию на странице. Я сделал простую демонстрацию на основе ваших кодов, как показано ниже:

Вид:

<div class="form-group">

    @(Html.DropDownList("CurrencyDropDownList", Model.Currency, "--Choose currency--", new { @class = "form-control" }))

</div>

Модель:

public class ZCurrency
{
    public int CCode { get; set; }
    public string CName { get; set; }
}

public class ViewModel
{
    public IEnumerable<SelectListItem> Currency { get; set; }
}

Контроллер:

public IActionResult Index()
    {
        List<ZCurrency> currencies = new List<ZCurrency>
        {
            new ZCurrency{ CCode = 1, CName = "AAA" },
            new ZCurrency{ CCode = 2, CName = "BBB" },
            new ZCurrency{ CCode = 3, CName = "CCC" },
        };
        ViewModel viewModel = new ViewModel();
        viewModel.Currency = currencies.Select(c => new SelectListItem
        {
            Value = c.CCode.ToString(),
            Text = c.CName,
            Selected = c.CCode == 2 ? true: false
        });

        return View(viewModel);
    }

Здесь я установил запись, для которой CCode равен 2 (новый ZCurrency {CCode = 2, CName = "BBB"}) как выбранный элемент, установив значение Selected как true.

...