0

问题描述: 我正在使用 ASP.NET MVC,并且我的控制器类中有以下方法。此方法使用 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在第四个参数中显示一个默认的艺术家名字?

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

4

2 回答 2

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

这回答了你的问题吗?

于 2013-01-10T18:46:08.033 回答
0

根据文档

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

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

第三个参数是要用作text每个呈现的 HTML 的属性的对象属性的名称(对于列表中的每个对象) <option>

第四个参数是默认选中的value(表示将使用该selected属性呈现的列表元素)。

于 2013-01-10T18:49:13.980 回答