SelectList方法MVC

时间:2013-01-10 18:39:35

标签: asp.net-mvc

问题描述: 我正在使用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在第四个参数中显示默认的艺术家名称?

我希望你们理解我的问题。如果您需要我这样做,我很乐意向您澄清。

2 个答案:

答案 0 :(得分:1)

  1. 第二个参数是第一个参数中每个元素的“value”属性或字段的名称。由于两位艺术家可以想象相同,所以通常最好使用ID列(如示例中所示),以便您明确知道选择了哪个项目。
  2. 在此示例中,您将提供当前查看的相册的艺术家作为默认显示。假设db.Artists包含ArtistId属性与给定值匹配的艺术家,呈现的HTML将生成选择该艺术家的选择列表。
  3. 这回答了你的问题吗?

答案 1 :(得分:0)

根据documentation

第一个参数是构造列表的对象的IEnumerable

第二个参数是对象属性的名称(对于列表中的每个对象),用作每个呈现的HTML value元素的<option>属性。

第三个参数是对象属性的名称(对于列表中的每个对象),用作每个呈现的HTML text的{​​{1}}属性。

第四个参数是默认选择的<option>(表示将使用value属性呈现的列表元素。)