Заполните выпадающий список из функции возврата Razor - PullRequest
0 голосов
/ 01 марта 2019

Я пытаюсь заполнить раскрывающийся список значениями из таблиц базы данных, используя EF. Во-первых, я не уверен насчет возвращаемых значений. Описание является строкой, поэтому я возвращаю список, но это не работает ..Во-вторых, не то, как возвращаемые значения можно использовать для заполнения раскрывающегося списка в моем представлении страницы бритвы. Любое руководство приветствуется. В веб-формах это была просто привязка данных к элементу управления, это кажется довольно сложным

 public List<string> getEstablishments()
        {
            var db = new mydbContext();
            result=db.TblEstablishment.Select(x => new { x.Description }).ToList();

            db.Dispose();
            return result;
        }

Ответы [ 2 ]

0 голосов
/ 01 марта 2019

в бритве:

//in your code, myEstablishments would be passed in somehow
List<string> _myEstablishments = new List<string> {"one", "two"};
@Html.DropDownList(name: "myDropDownList", selectList: _myEstablishments.Select(s => new SelectListItem() { Text = s, Value = s });
0 голосов
/ 01 марта 2019

Измените ваш оператор выбора на Select(x => x.Description).ToList().Теперь вы создаете анонимный объект и возвращаете его вместо строки.Для привязки заведения в выпадающем списке вы можете сделать следующее:

public class EstablishmentOptionView
{
    public int EstablishmentId { get; set;}
    public string Description { get; set;}
}

public List<EstablishmentOptionView> getEstablishments()
{
            var db = new mydbContext();
            result=db.TblEstablishment.Select(x => new EstablishmentOptionView {EstablishmentId = x.Id, Description = x.Description }).ToList();

            db.Dispose();
            return result;
 }

//somewhere else 
SomeDropDownList.DataValueField = "EstablishmentId";
SomeDropDownList.DataTextField = "Description";
SomeDropDownList.DataSource = getEstablishments();
SomeDropDownList.DataBind();
...