2016-06-13 32 views
1

我是ASP.net的新手。我想弄清楚如何讓我的編輯/顯示頁面適用於多選列表框。我如何獲得我的視圖來顯示我的數據庫表

我的創建工作正常,並保存到我的數據庫,但我不知道如何返回到編輯頁面,仍然看到選定的值。 希望這是有道理的。

這是我爲創建方法的代碼。記錄在兩個表格中都可以很好地保存,但是我無法從我的選項表中獲取值。 我想嘗試做編輯觀點看起來像創建視圖

控制器

[HttpPost] 
public IActionResult Create(MusicViewModel model) 
{ 
    if(ModelState.IsValid) 
    { 
     var album = new Music(); 
     album.Album = model.Album; 
     album.Artist = model.Artist; 
     album.Label = model.Label; 
     album.Review = model.Review; 
     album.ReleaseDate = model.ReleaseDate; 
     foreach(Types type in model.Options) 
     {var opt = new Options(); 
      opt.Music = album; 
      opt.Types = type; 
      _musicData.AddOptions(opt); 
     } 
     _musicData.Add(album); 
     _musicData.Commit(); 
     return RedirectToAction("Details", new { id = album.MusicID }); 
    } 
    return View(); 
} 

Music.cs

public enum Types 
{ 
    Spotify, 
    Groove, 
    CD, 
    Vinyl, 
    Pandora 
} 

public class Music 
{ 
    public int MusicID { get; set; } 
    [Required] 
    [MaxLength(50),MinLength(5)] 
    public string Artist { get; set; } 
    [Required, MinLength(5)] 
    public string Album { get; set; } 
    public int Rating { get; set; } 
    public Label Label { get; set; } 
    [DataType(DataType.Date)] 
    [Display(Name ="Release Date")] 
    public DateTime ReleaseDate { get; set; } 
    public string Review { get; set; } 
    public List<Options> Options { get; set; } 
} 

public class Options 
{ 
    public int OptionsID { get; set; } 
    public Types Types { get; set; } 
    public int MusicID { get; set; } 
    public Music Music { get; set; } 
} 

public class MusicDbContext:DbContext 
{ 
    public DbSet<Music> Albums { get; set; } 
    public DbSet<Options> Options { get; set; } 
} 

查看

@model Music 
.... 
<form asp-action="Create" method="post"> 
<div class="row"> 
    <div class="col-md-3 col-md-offset-2"> 
     <fieldset class="form-group"> 
      <label asp-for="Artist"></label> 
      <input class="form-control" asp-for="Artist" /> 
      <span asp-validation-for="Artist" class="alert"></span> 
     </fieldset> 
    </div> 

    <div class="col-md-3"> 
     <fieldset class="form-group"> 
      <label asp-for="Album"></label> 
      <input class="form-control" asp-for="Album" /> 
      <span asp-validation-for="Album" class="alert"></span> 
     </fieldset> 
    </div> 

    <div class="col-md-3"> 
     <label asp-for="Label"></label> 
     @Html.DropDownList("Label", Html.GetEnumSelectList(typeof(Label)), "-------", new { @class = "form-control" }) 
    </div> 
</div> 

<div class="row"> 
    <div class="col-md-3 col-md-offset-2"> 
     <fieldset class="form-group"> 
      <label asp-for="Options"></label> 
      <select multiple class="form-control" asp-for="Options" 
       asp-items="@Html.GetEnumSelectList(typeof(Types))"></select> 
     </fieldset> 
    </div> 
    <div class="col-md-3"> 
     <fieldset class="form-group"> 
      <label asp-for="ReleaseDate"></label> 
      <input type="text" asp-for="ReleaseDate" class="DateBox form-control" /> 
      <span asp-validation-for="ReleaseDate" class="alert"></span> 
     </fieldset> 
    </div> 
    </div> 
    <div class="col-md-offset-3"><input class="btn btn-info" type="submit" value="Submit" /></div> 
</form> 
+0

您不能將一個'