在我的网站上,我想列出头条新闻<aside>
。
@RenderPage()
渲染<aside>
。在<aside>
的内部,我正在使用@RenderPage()
显示其他信息。这里是我到目前为止尝试过的一些东西:
@RenderPage()
显示消息列表-失败@Html.Partial("_TopNews", Model)
-Error: Object reference not set to an instance of an object
。 -我在页面顶部也声明了@model IEnumerable<Namespace.Models.TopNews>
。@Html.RenderPartial
尝试过相同的事情-相同的结果。@Html.Partial("_DisplayTopNews", Model)
,但仍然没有运气。这里是上述从<aside>
开始的项目的代码:
@model IEnumerable<Namespace.Models.TopNews>
<aside class="sidebar sidebar-primary block-content-area col-md-4 panel-sides">
<section class="roundBox">
<div class="wrap">
<h4 class="block-title">Next Cycle Begins:</h4>
<div class="margin-top-lg text-left statement margin-sides-xl" aria-label="News and Announcements">
<div class="statement margin-sides pad-sides">
<h3>@RenderPage("~/Views/Shared/_CycleStateDate.cshtml")</h3>
</div>
</div>
</div>
</section>
<section class="sidebar-block sidebar_nav_menu roundBox">
<div class="wrap">
<h4 class="block-title"><strong>TOP NEWS</strong></h4>
<div class="margin-top-lg text-left statement margin-sides-xl" aria-label="News and Announcements">
<div class="statement margin-sides pad-sides">
@Html.Partial("_DisplayTopNews", Model)
</div>
</div>
</div>
</section>
</aside>
TopNews部分:
@model IEnumerable<Namespace.Models.TopNews>
<table class="table">
@foreach (var item in Model) {
<tr>
<td>
@Html.DisplayFor(modelItem => item.Message)
</td>
</tr>
}
</table>
_ DisplayTopNews视图
@model IEnumerable<Namespace.Models.TopNews>
<ul class="list">
@foreach (var item in Model)
{
<li>
@Html.DisplayFor(modelItem => item.Message)
</li>
}
</ul>
TopNewsController ActionResult方法_DisplayTopNews():
private DbContext db = new DbContext();
public ActionResult _DisplayTopNews()
{
return View(db.TopNews.ToList());
}
有人可以指出我做错了什么,请问如何纠正?
*作为一个简短的说明,我想补充一下,所有CRUD功能都可以使用。
@model IEnumerable<Namespace.Models.TopNews>
@foreach (var item in Model)
{
<blockquote class="left">
<small>
@Html.DisplayFor(modelItem => item.Message)
</small>
</blockquote>
}
除了它在页面上的显示方式之外,所有内容都是相同的。
[在我的Home控制器中,我添加了一个ActionResult,它返回了_TopNews视图和模型。这是HomeController ActionResult:
private readonly DbContext db = new DbContext(); public ActionResult _TopNews() { return PartialView("_TopNews", db.TopNews.ToList()); }
在将渲染部分图像的<aside>
中,我使用@Html.Partial
而不是使用@Html.RenderPartial
或@Html.Action
。
这里是<aside>
:
@model IEnumerable<Namespace.Models.TopNews> <aside class="sidebar sidebar-primary block-content-area col-md-4 panel-sides"> <section class="sidebar-block sidebar_nav_menu" aria-label="Top News sidebar"> <div class="panel panel-default"> <!--SIDEBAR HEADER--> <div class="panel-heading"> <h3 class="Agenda">Top News</h3> </div> <div class="panel-body"> @Html.Action("_TopNews", "Home") </div> </div> </section> </aside>
我希望这对其他人有帮助。