0

こんにちは、ドロップダウンリストを機能させようとしていますが、予想以上に難しいようです。メンバー、レンタル、映画の 3 つのドメイン クラスがあります。私のアイデアは、特定のユーザーがレンタルした映画を表示するドロップダウンリストを作成することでした。ドロップダウンリストで映画を選択して送信すると、選択した映画が返され、bool IsInStock を true に設定できます。

だから私はビューモデルとコントローラーアクションを作成しましたが、これを進める方法を教えてください。これで、ユーザー「Jan」がレンタルした映画のドロップダウンリストが表示されますが、送信をクリックすると、IsInStock を true に設定するために値を取得したいと思います。POST 値を処理するメソッドが必要になることはわかっていますが、最初にこれを機能させようとしています。

public class Member
    {
        public virtual int MemberId { get; set; }
        public virtual string LastName { get; set; }
        public virtual List<Rental> Rentals { get; set; }
    }
 public class Rental
    {
        public virtual int RentalId { get; set; }
        public virtual int MovieId { get; set; }
        public virtual Movie Movie { get; set; }
        public virtual int MemberId { get; set; }
        public virtual Member Member { get; set; }
    }
  public class Movie
  {
    public virtual int MovieId { get; set; }
    public virtual string Name { get; set; }
    public virtual bool IsInStock { get; set; }
  }
  public class RentalsViewModel
    {
        // Need something here.
        public IEnumerable<SelectListItem> RentedMovies { get; set; }
    }
    public ActionResult ReturnMovie()
    {

        var rentedmovies = db.Rentals.Where(r => r.Member.Name == "Jan").ToList();

        var model = new RentalsViewModel()
        {

            RentedMovies = rentedmovies.Select(x => new SelectListItem
            {
                Value = x.MovieId.ToString(),
                Text = x.Movie.Name
            })
        };

        return View(model);
    }

// In the View

       @using (Html.BeginForm())
{
@Html.DropDownListFor(x => x.RentedMovies, //Something here);
<p>
<input type="submit" value="Save" />
</p>                                                                  
}
4

1 に答える 1

0

最初のパラメータ:

@Html.DropDownListFor(x => x.RentedMovies, //Something here);

intこの値をサーバーに送信するため、 である必要があります。

public virtual int MovieId { get; set; }

したがって、例は次のようになります。

@Html.DropDownListFor(x => x.RentedMovieId, Model.RentedMovies);

(プロパティRentedMovieIdを に追加RentalsViewModel)

于 2012-12-26T13:18:33.247 に答える