我有两个这样的模型类:
程序:
public class Program
{
public int ProgramId { get; set; }
public string Name { get; set; }
public virtual Playlist chosenPlaylist { get; set; }
public virtual IList<Playlist> Playlists { get; set; }
}
public class Playlist
{
public int PlaylistId { get; set; }
public string Name { get; set; }
public int NumberVotes { get; set; }
public virtual IList<Song> Songs { get; set; }
}
在我的编辑程序视图中,我想更新 s,chosenPlaylist
以便允许用户选择一个或一个Program
s Playlist
。
例如:
方案一:
- 播放列表 1
- 播放列表 2
选择的播放列表:播放列表 1
因此,用户可以编辑并选择无(因此没有播放列表)、1(不会改变任何内容)或 2,然后将其保存到数据库中。
我试图在我的控制器中创建一个下拉列表,但它不会更新。
这是我的 GET 和 POST Edit 中ActionResult
的内容:
ViewBag.chosenId = new SelectList(program.Playlists, "PlaylistId",
"Name", program.chosenPlaylist.PlaylistId);
在我看来:
@Html.DropDownList("PlaylistId", (SelectList)ViewBag.chosenId)
这会很好地显示列表并预先选择所选的播放列表,如果有的话(如果没有,我会为它编写代码使其默认为第一个)。如果程序中没有播放列表,那很容易控制。
然而,问题:
- 不更新我的模型。例如,如果选择播放列表 2,而我选择 P1,则在 POST 事件之后继续显示 P2。
- 我想在下拉列表中包含一个选项,以使其不选择任何值(因此,在该字段中放置一个 NULL )。那可能吗?
没有抛出任何错误,除了最重要的部分——更新数据库之外,一切似乎都正常。