.NET MVC - 下拉列表显示对象
.NET MVC - Drop Down List is Showing Objects
我对 MVC 比较陌生,所以请原谅我可能很愚蠢的问题,但我正在尝试获取一个下拉列表以根据视图模型进行填充。我可以毫无问题地使用 VM 来填充列表视图,但是当我尝试呈现下拉列表时,我 运行 遇到了问题。
我得到一个程序列表:
public IEnumerable<ProgramList> GetAllProgramsList()
{
// Fetch from the data store
var fetchedObjects = ds.Programs.OrderBy(nm => nm.Name).AsEnumerable();
return Mapper.Map<IEnumerable<ProgramList>>(fetchedObjects);
}
将它们映射到 ProgramList:
public class ProgramList
{
public int Id { get; set; }
public string Name { get; set; }
}
将列表传递给控制器并填充表单 VM:
public ActionResult Create()
{
var addForm = new SuggestionAddForm();
addForm.Program = new SelectList(m.GetAllProgramsList(), "Name");
return View(addForm);
}
然后在HTML中渲染:
@Html.DropDownList("SupplierId", Model.Program)
基本上我得到的是一个看起来像这样的对象列表:
Suggestions.Controllers.ProgramList
在下拉列表中。我无法让它呈现任何属性,例如 ID 或 Name 字段。我到底哪里错了?
谢谢!
您尝试过使用
@Html.DropDownListFor(m => m.Program, Model.Program)
http://odetocode.com/blogs/scott/archive/2013/03/11/dropdownlistfor-with-asp-net-mvc.aspx
只需更改此:
public ActionResult Create()
{
var addForm = new SuggestionAddForm();
addForm.Program = new SelectList(m.GetAllProgramsList(),"Id", "Name");
return View(addForm);
}
你只是忘记了 "Id"
我对 MVC 比较陌生,所以请原谅我可能很愚蠢的问题,但我正在尝试获取一个下拉列表以根据视图模型进行填充。我可以毫无问题地使用 VM 来填充列表视图,但是当我尝试呈现下拉列表时,我 运行 遇到了问题。
我得到一个程序列表:
public IEnumerable<ProgramList> GetAllProgramsList()
{
// Fetch from the data store
var fetchedObjects = ds.Programs.OrderBy(nm => nm.Name).AsEnumerable();
return Mapper.Map<IEnumerable<ProgramList>>(fetchedObjects);
}
将它们映射到 ProgramList:
public class ProgramList
{
public int Id { get; set; }
public string Name { get; set; }
}
将列表传递给控制器并填充表单 VM:
public ActionResult Create()
{
var addForm = new SuggestionAddForm();
addForm.Program = new SelectList(m.GetAllProgramsList(), "Name");
return View(addForm);
}
然后在HTML中渲染:
@Html.DropDownList("SupplierId", Model.Program)
基本上我得到的是一个看起来像这样的对象列表:
Suggestions.Controllers.ProgramList
在下拉列表中。我无法让它呈现任何属性,例如 ID 或 Name 字段。我到底哪里错了?
谢谢!
您尝试过使用
@Html.DropDownListFor(m => m.Program, Model.Program)
http://odetocode.com/blogs/scott/archive/2013/03/11/dropdownlistfor-with-asp-net-mvc.aspx
只需更改此:
public ActionResult Create()
{
var addForm = new SuggestionAddForm();
addForm.Program = new SelectList(m.GetAllProgramsList(),"Id", "Name");
return View(addForm);
}
你只是忘记了 "Id"