я получаю сообщение об ошибке при попытке вынести частичный вид:частичный вид ошибки MVC требует модель элемента типа IEnumerable
Исключение типа «System.InvalidOperationException» произошло в System.Web.Mvc .dll, но не был обработан в пользовательском коде
Дополнительной информации: модель элемент передается в словарь типа «System.Data.Entity.DynamicProxies.Post_206B6491B2DC6BC95A9910F33BF20B9F1973E064A753CBEDF9E6C72F08A98532», но этот словарь требует модель элемента типа 'System.Collections.Generic.IEnumerable1 [MyBlogger.Post]'.
PartialView:
IEnumerable<MyBlogger.Post>
@foreach (var item in Model) {
<p class="text-left">Similar Article: <a href="#">@Html.DisplayFor(modelItem => item.Title)</a></p>
}
MainDetails Вид:
@model MyBlogger.Post
@{
ViewBag.Title = "MainDetails";
Layout = "~/Views/Shared/_Layout.cshtml";
}
<h2>@Html.DisplayFor(model => model.Title)</h2>
<header class="intro-header">
<div class="container">
<div class="row">
<div>
<div class="post-heading">
@*<a href="#">*@
<img class="img-responsive" src="~/Content/img/post-bg.jpg" alt="">
<h1>@Html.DisplayFor(model => model.ShortDescription)</h1>
<p class="text-left">Posted by <a href="#">@Html.DisplayFor(model => model.BlogUserEmail)</a> on @Html.DisplayFor(model => model.PostedOn)</p>
<p class="text-left">Category <a href="#">@Html.DisplayFor(model => model.Category.Name)</a></p>
@*</a>*@
</div>
</div>
</div>
</div>
</header>
<fieldset>
<div class="display-field">
@*@Html.DisplayFor(model => model.BlogUserEmail)*@
</div>
<div class="display-field">
@Html.Raw(HttpUtility.HtmlDecode(Model.Description))
</div>
<div class="display-field">
@Html.DisplayFor(model => model.Modified)
</div>
</fieldset>
@Html.Partial("SimilarPosts") // here
MainDetails Действие:
public ActionResult MainDetails(string urlslug)
{
Post post = db.Posts.First(m => m.UrlSlug == urlslug);
if (post == null)
{
return HttpNotFound();
}
return View(post);
}
Элемент Foreach в моем IEnumerable отображает заголовок каждого сообщения? –
Ваше возвращение к представлению «Post», а затем вы вызываете партию, которая ожидает коллекцию «Почта».Имеет ли typeof 'Post' сам свойство, которое является' IEnumerable '? –
Вы не отправляете никаких данных в свои части. Вы используете [this] (https://msdn.microsoft.com/en-us/library/ee402898 (v = vs.118) .aspx) перегрузку, когда вы должны использовать [этот] (https: // msdn.microsoft.com/en-us/library/ee402926(v=vs.118).aspx). Вы должны получить список/перечисляемый для «похожих сообщений» и установить его как модель для частичного. Например, вы можете получить список подобных сообщений в действии 'MainDetails', сохранить его в' ViewBag' и передать его частичному. –