ASP NET MVC 中表中的下拉列表
本文关键字:下拉列表 ASP MVC NET | 更新日期: 2023-09-27 18:31:43
我想从表中获取包含值的下拉列表。我有模型:
namespace MobileService.Models
{
public class Mobile
{
public int Id { get; set; }
public string Model { get; set;}
Public string EMEI { get; set ;}
public int MasterId { get; set; }
public List<Master> MasterList { get; set; }
}
public class Master
{
public int Id { get; set; }
public string Name { get; set; }
}
}
在控制器中,我为此模型创建了操作:
public ActionResult Create()
{
return View();
}
在视图:
@model MobileService.Models.Mobile
@using (Html.BeginForm()) {
@Html.EditorFor(model => model.Model)
@Html.EditorFor(model => model.EMEI )
// And here i want to display a dropdown list with all available masters
<button type="submit" class="btn btn-primary">Creat</button>
}
但它总是告诉我Model.MasterList是空的。但是为什么?在模型中,我告诉从另一个模型获取列表(public List MasterList { get; set; })。为什么为空?
这段代码是VB格式的。一开始,即使我寻找了很多时间,这是我找到的简单解决方案。
将模型转换为选择列表项列表
Dim lstEmpTypes As New List(Of SelectListItem)
lstTicketWrTypes.Add(New SelectListItem With {.Text = row("Something"), .Value = row("Something")})
'然后将其装入ViewBag中
ViewBag.EmpTypes = lstEmpTypes
'在你看来
@Html.DropDownList("selectWrType", New SelectList(ViewBag.EmpTypes , "Value", "Text"), New With {.class = "span3"})
当您查询移动时,您需要包含("主列表"),或者在您的上下文中打开延迟加载(不推荐)
我的答案是将其添加到控制器:
public ActionResult Create()
{
ViewBag.MasterId = new SelectList(db.Masters, "Id", "Name");
return View();
}
然后在视图中显示下拉列表:
@Html.DropDownList("MasterId", null, htmlAttributes: new { @class = "form-control" })
Thnx ZikO 现在让我看到该列表没有自动加载。