2014-02-18 23 views
5

Ich benutze VS2012 MVC 4 mit EF. Ich möchte einen Blick darauf werfen, wo der Benutzer den Filmtitel hochladen und eingeben kann (actionmovie, scifi usw., der von einer Dropdown-Liste kommt!), Und ihn in der Datenbank speichern.Asp. NET Mvc 4 Dropdownliste

Modell:

public class Movie 
{ 
    [DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)] 
    public int Id { get; set; } 

    public string Name { get; set; } 

    [ForeignKey("Type")] 
    public int TypeId { get; set; } 

    public virtual Type Type { get; set; } 
} 

public class Type 
{ 
    [DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)] 
    public int TypeId { get; set; } 

    public string TypeName { get; set; } 

    public virtual ICollection<Movie> Movies { get; set; } 
} 

Wenn ich recht habe ich gemacht erfolgreich one to many Beziehung zwischen der Art und Film-Tabelle.

-Controller:

[HttpPost] 
    [Authorize] 
    public ActionResult NewMovie(Movie movie) 
    { 
     db.Movies.Add(movie); 
     db.SaveChanges(); 
     return View(movie); 
    } 

Ansicht:

@using (Html.BeginForm()) 
    { 
     <table> 
      <tr> 
       <td>@Html.DisplayNameFor(model => model.Name)</td> 
       <td>@Html.DisplayNameFor(model => model.TypeId)</td> 
      </tr> 
      <tr> 
       <td>@Html.TextBoxFor(model => model.Name)</td> 
       <td>@Html.DropDownListFor......... 
      </tr> 
     </table> 
     <input type="submit" value="submit" /> 
    } 

ich nicht wirklich wissen, wie soll ich das Dropdownliste in der Ansicht zu machen, und stellen Sie die spezifischen Details für sie in der Controller mit der sichersten Weg (ich denke, ich sollte eine Liste/enumera machen ble aus der movie.typeid oder der Type-Klasse)

Ich wäre sehr froh, wenn Sie mir helfen könnten! Danke

Antwort

4

Ich verwende Liste für meine Dropdown-Liste. um es so zu machen, können Sie die Liste so auf Ihrem Controller erstellen.

Sie können nur ein Modell an die Ansicht übergeben. von Ihrem Code übergeben Sie das Filmmodell so setzen

public List<SelectListItem> MovieList { get; set; } 

in Ihrem Modell. Dann auf der Ansicht können Sie Ihre Dropdown-Liste wie folgt erstellen

@Html.DropDownListFor(x => x.Id, Model.MovieList) 

Lassen Sie mich wissen, wenn Sie Fragen haben.