您好,我正在尝试使我的下拉列表正常工作,但似乎比预期的要难。我有 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>
}