【问题标题】:Populate dropdown from return function Razor从返回函数 Razor 填充下拉列表
【发布时间】:2019-07-23 19:15:16
【问题描述】:

我正在尝试使用 EF 使用数据库表中的值填充下拉框 首先我不确定这里的返回值 描述是一个字符串,所以我返回一个列表,但这不起作用.. 其次,不是如何使用返回值来填充我的剃刀页面视图中的下拉列表 任何指导表示赞赏 在 web 表单中,它只是一个与控件的数据绑定,这似乎相当复杂

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

            db.Dispose();
            return result;
        }

【问题讨论】:

  • 将您的选择语句更改为Select(x =&gt; x.Description).ToList()。现在的方式是创建一个匿名对象并返回它而不是字符串。
  • 谢谢!那就是现在正确返回列表

标签: c# entity-framework razor razor-pages


【解决方案1】:

在剃刀中:

//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 });

【讨论】:

  • 不需要“名称:”,但是一旦我从我的函数中传递了列表,您的命令就起作用了.....@Html.DropDownList("name",selectList: getEstablishments().Select(s => new SelectListItem() { Text = s, Value = s }));
【解决方案2】:

将您的选择语句更改为Select(x =&gt; 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();

【讨论】:

  • MVC 中没有 DataBinds/Razor?
  • 抱歉,我在问题中阅读了 Webforms 并认为您需要该表单中的数据绑定。
猜你喜欢
  • 1970-01-01
  • 2020-06-01
  • 1970-01-01
  • 2016-12-08
  • 2023-03-11
  • 2022-01-11
  • 2021-04-04
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多