我试图在视图中填充下拉列表。我对剃刀语法有疑问(我相信 - 这个框架只有几天)。我已经看到了多种方法来做到这一点;但是,我有兴趣让它工作,所以我可以从中学习...... :)。这就是我所拥有的: 我的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
如何让剃刀语法显示包含状态的下拉列表?
答案 0 :(得分:3)
不确定究竟是什么问题,因为这非常简单。在您看来,您只需:
<select asp-for="SomeProperty" asp-items="@Model.State"></select>
如果SomeProperty
是您模型上的属性,您希望将所选值绑定到帖子上。或者,您可以使用HtmlHelper
扩展程序:
@Html.DropDownListFor(m => m.SomeProperty, Model.State)