问题描述: 我正在使用ASP.NET MVC,我在Controller类中有以下方法。此方法使用SelectList方法从数据库中选择项目列表。然后,这些项目将传递到视图以显示在下拉列表中。
public ActionResult Edit(int id)
{
Album album = db.Albums.Find(id);
ViewBag.ArtistId = new SelectList(db.Artists, "ArtistId", "Name", album.ArtistId);
return View(album);
}
我对selectMethod的理解:
我知道第一个参数会列出一个项目列表 第三个参数是要显示的属性。在这种情况下,我们将显示艺术家的名称属性。 根据我的研究,我发现第4个参数是将在下拉列表中显示的默认值。
我的问题:
1)我希望有人帮我理解第二个参数。
2)由于我们正在显示艺术家的名字,我们如何使用艺术家ID在第四个参数中显示默认的艺术家名称?
我希望你们理解我的问题。如果您需要我这样做,我很乐意向您澄清。
答案 0 :(得分:1)
db.Artists
包含ArtistId
属性与给定值匹配的艺术家,呈现的HTML将生成选择该艺术家的选择列表。这回答了你的问题吗?
答案 1 :(得分:0)
第一个参数是构造列表的对象的IEnumerable
。
第二个参数是对象属性的名称(对于列表中的每个对象),用作每个呈现的HTML value
元素的<option>
属性。
第三个参数是对象属性的名称(对于列表中的每个对象),用作每个呈现的HTML text
的{{1}}属性。
第四个参数是默认选择的<option>
(表示将使用value
属性呈现的列表元素。)