Моя страница просмотра с частичным просмотром:
@model App.Models.UpcomingPassedEventViewModel
<section class="container clearfix">
@Html.Partial("_CommentBox")
и мой частичный вид _CommentBox имеет раскрывающийся список следующим образом:
@model QlutoApp.Models.Neighbourhood
@Html.DropDownList("Locations", ViewBag.NeighbourhoodId as SelectList, "Select a location")
Как вы можете видеть выше, частичное представление зависит от Models.Neighbourhood, а страница просмотра зависит от Models.UpcomingPassedEventViewModel.
Теперь мой контроллер, куда я пытаюсь отправить данные через ViewBag:
public ActionResult MyFolder()
{
ViewBag.NeighbourhoodId = new SelectList(allNeighbourhood(), "Id", "NeighbourhoodName");
int currentUserId = this.User.Identity.GetUserId<int>();
var events = this.db.Events
.Where(e => e.AuthorId == currentUserId)
.OrderBy(e => e.StartDateTime)
.Select(e => new EventsViewModel()
{
StartDateTime = e.StartDateTime,
Title = e.Title,
});
var upcomingEvents = events.Where(e => e.StartDateTime > DateTime.Now);
var passedEvents = events.Where(e => e.StartDateTime <= DateTime.Now);
return View(new UpcomingPassedEventViewModel()
{
UpcomingEvents = upcomingEvents,
PassedEvents = passedEvents,
allNeighbourhood = new SelectList(allNeighbourhood(), "Id", "NeighbourhoodName")
});
}
Моя модель просмотра здесь:
public class UpcomingPassedEventViewModel
{
public IEnumerable<EventsViewModel> UpcomingEvents { get; set; }
public IEnumerable<EventsViewModel> PassedEvents { get; set; }
public Neighbourhood Neighbourhood { get; set; }
public SelectList allNeighbourhood { get; set; }
}
Я передаю все, что требуется страницей просмотра, через эту модель представления, но все равно она не работает. На других страницах просмотра проблем не было, поскольку они не были сильно привязаны к какому-либо классу модели, поэтому данные легко передаются в частичное представление. Но на этом на конкретной странице отображается ошибка. Ошибка:
The model item passed into the dictionary is of type 'App.Models.UpcomingPassedEventViewModel', but this dictionary requires a model item of type 'App.Models.Neighbourhood'.
где я ошибаюсь. Пожалуйста, помогите мне.
@Html.Partial("_CommentBox", Model.Neighbourhood)
, потому что ваша часть ожидает модель типаNeighbourhood
- person   schedule 21.12.2015Neighbourhood
равноnull
- вы должны инициализировать его, прежде чем передавать его в представление (или вы можете использовать@Html.Partial("_CommentBox", new Neighbourhood())
- person   schedule 21.12.2015