我正在用ASP在C#中创建一个MVC web核心程序。NET。该程序将由几个输入组成,这些输入将插入到已经存在的数据库(t-SQL(中。
我的问题是,其中一个字段需要是由SELECT查询填充的下拉列表。我只需要将其显示为下拉列表,以便设施列表可以随Db动态更改。除了绑定这个下拉列表之外,我的程序可以100%工作。我不需要从Facilities Db进行任何数据操作。简单地说,只要列出一个列表,用户就可以选择合适的名称,然后这个名称就会被粘贴到我创建的新表中。
我可以手动创建一整天的下拉列表,但这对我没有帮助。数据连接已经在其他地方设置好了。该列表将位于代码的WellNum部分。我对互联网进行了梳理,但还没有找到解决方案。感谢您的帮助。
这是我对Create.cshtml 的看法
<div class="form-group">
<label asp-for="WellNum" class="control-label"></label>
<select asp-for="WellNum" class="form-control" />
<span asp-validation-for="WellNum" class="text-danger"></span>
</div>
让我们假设您有一个名为Person
的类,它看起来像这样:
public class Person
{
public string Name { get; set; }
public int Age { get; set; }
}
并且需要显示从数据库/存储库接收的人员列表
我的控制器如下:
public class PeopleController : Controller
{
// GET: People
public ActionResult Index()
{
List<Person> people = Db.GetAllPeople();
return View(people); //This is how you pass your strongly typed data to the view
}
}
在创建视图时,通过在视图的开头添加以下内容,将视图紧密绑定到List数据模型:
@model IEnumerable<WebApplication1.Models.Person>//Fully qualified name
并将您的下拉列表生成为
<div class="form-group">
<label asp-for="WellNum" class="control-label"></label>
<select asp-for="WellNum" class="form-control" />
@foreach (var item in Model) //This creates a dropdown of all the peoples names received from the database
{
<option value=item.Name>item.Name</option>
}
<span asp-validation-for="WellNum" class="text-danger"></span>
</div>
或
用替换foreach循环
@Html.DropDownList("WellNum",new SelectList(Model,"Name","Name"))
它将生成以下html
<select id="WellNum" name="WellNum">
<option value=valueField>dataTextField</option>
<option value=valueField>dataTextField</option>
...
</select>