Как получить идентификатор вместо текста из списка выбора asp.net mvc - PullRequest
0 голосов
/ 30 июня 2018

Вот мой контроллер:

var repo = new CustomerRepository();
var customerList = repo.GetTemplates();
SendTemplateModel mod = new SendTemplateModel();
mod.Templates = customerList;
return View(mod);

Вот раскрывающийся список:

@Html.DropDownListFor(x => Model.SelectedTemplate, new SelectList(Model.Templates, "Value", "Text"), htmlAttributes: new { @class = "form-control", id = "template"})

Вот класс GetList

  public IEnumerable<SelectListItem> GetTemplates()
    {
        using (MailsEntities5 context = new MailsEntities5())
        {
            List<SelectListItem> countries = context.templateMails.AsNoTracking()
                .OrderBy(n => n.name)
                    .Select(n =>
                    new SelectListItem
                    {
                        Value = n.Id.ToString(),
                        Text = n.name
                    }).ToList();
            var countrytip = new SelectListItem()
            {
                Value = null,
                Text = "--- Select templates ---"
            };
            countries.Insert(0, countrytip);
            return new SelectList(countries, "Value", "Text");
        }
    }

Но я могу получить только «Текст», который является названием шаблона. Но вместо этого я хочу получить идентификатор, который является «значением» для получения данных от сущности. Пожалуйста, помогите!

1 Ответ

0 голосов
/ 30 июня 2018

Я решил себя

  public IEnumerable<SelectListItem> GetTemplates()
        {
            using (MailsEntities5 context = new MailsEntities5())
            {
                List<SelectListItem> countries = context.templateMails.AsNoTracking()
                    .OrderBy(n => n.Id)
                        .Select(n =>
                        new SelectListItem
                        {
                            Value = n.Id.ToString(),
                            Text = n.name
                        }).ToList();
                var countrytip = new SelectListItem()
                {
                    Value = null,
                    Text = "--- Select templates ---"
                };
                countries.Insert(0, countrytip);
                return new SelectList(countries, "Value", "Text");
            }
        }

Изменено на n.Id

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