MVC Core添加下拉列表以查看

时间:2018-01-02 18:20:40

标签: razor asp.net-core-mvc

我试图在视图中填充下拉列表。我对剃刀语法有疑问(我相信 - 这个框架只有几天)。我已经看到了多种方法来做到这一点;但是,我有兴趣让它工作,所以我可以从中学习...... :)。这就是我所拥有的: 我的DataAccess类:

public class DropDown{
public List<SelectListItem> Get_State() //State

    {
        using (SqlConnection conSql = new SqlConnection(conStr)) 
        {
            if (conSql.State == ConnectionState.Closed)
            {
                conSql.Open();
            }

            SqlCommand com = new SqlCommand("Select * From Select_State Order by State", conSql);

            SqlDataAdapter da = new SqlDataAdapter(com);

            DataSet ds = new DataSet();

            da.Fill(ds);

            List<SelectListItem> stateList = new List<SelectListItem>();

            foreach (DataRow dr in ds.Tables[0].Rows)

            {
                stateList.Add(new SelectListItem { Text = dr["StateName"].ToString(), Value = dr["State"].ToString() });
            }

            return stateList;
    }
}

我的模特:

    public class DropDownModel
{
    public List<SelectListItem> State { get; set; }
    public List<SelectListItem> extra1{ get; set; }
    public List<SelectListItem> extra2{ get; set; }
    public List<SelectListItem> extra3{ get; set; }
    public List<SelectListItem> extra4{ get; set; }
}

}

我的控制器:

        public IActionResult DropDown() {
                  DropDownModel dropdown = new DropDownModel();
                  dropdown.State = Get_DropDown.Get_State();

        return View(dropdown);
    }//DropDown

如何让剃刀语法显示包含状态的下拉列表?

1 个答案:

答案 0 :(得分:3)

不确定究竟是什么问题,因为这非常简单。在您看来,您只需:

<select asp-for="SomeProperty" asp-items="@Model.State"></select>

如果SomeProperty是您模型上的属性,您希望将所选值绑定到帖子上。或者,您可以使用HtmlHelper扩展程序:

@Html.DropDownListFor(m => m.SomeProperty, Model.State)