У меня есть модель, которая содержит список другой модели.Допустим, у меня есть MovieModel:
public class MovieModel
{
public int MovieId { get; set; }
public string Title { get; set; }
public string Director { get; set; }
}
Тогда у меня есть RentalModel:
public class RentalModel
{
public int RentalId { get; set; }
public string CustomerId { get; set; }
public List<MovieModel> Movies { get; set; }
}
Затем у меня есть место, где отображаются все прокаты, которые, нажав на аренду,его детали будут отображаться, от «ShowRentals.aspx» до «ShowRentalDetails.aspx»
<% using (Html.BeginForm()) { %>
<% foreach(var rent in Model) { %>
<div class="editor-label">
<div class="editor-field">
<%: rent.RentalId %>
<%: Html.ActionLink("Details", "ShowRentalDetails",
new {rentalId = rent.RentalId,
customerId = rent.CustomerId,
movies = rent.Movies,
})%>
Когда я отлаживаю, я вижу, что список фильмов всегда пуст.Это потому, что только примитивные параметры успешно передаются, такие как идентификаторы.Я никогда не был в состоянии пройти сложные типы.Мне действительно нужно, чтобы этот список был передан контроллеру.Может быть, потому что actionlink не способен?Какие другие обходные пути я могу сделать?Я застрял на этом некоторое время.Не берите в голову голый код здесь, это только, чтобы показать Вам, что я делаю со списком.Пожалуйста, помогите.
(продолжение)
В Контроллере есть два действия, ShowRentals и ShowRentalDetails:
public ActionResult ShowRentals()
{
MembershipUser user = Membership.GetUser(User.Identity.Name, true);
Guid guid = (Guid)user.ProviderUserKey;
Entities dataContext = new Entities();
Member member = dataContext.Members.Where(m => m.UserID == guid).First();
IEnumerable<RentalModel> toReturn = from r in member.Rentals
select new RentalModel
{
RentalId = m.RentalID,
CustomerId = m.CustomerID,
};
return View(toReturn);
}
[Authorize]
public ActionResult ShowRentalDetails(RentalModel model, List<MovieModel> movies)
{
return View("ShowRentalDetails", model);
}
Я не могу установить его в ShowRentals, потому чтомассив фильмов в базе данных имеет тип Movie, а не MovieModel, поэтому два списка несовместимы.При передаче из представления ShowRentals это значение равно нулю, а модель реконструируется с помощью mvc, а также не работает, если явно передано из actionlink в качестве параметра.помощь!