设置 MVC 5 Razor 视图<选择 asp-for = "xxx"</select>查询



我正在用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>

相关内容

最新更新