我试图了解如何制作部分观点。到目前为止,我对部分视图有以下内容,称为" _News":
const char **
const char const * const *
etc.
然后在控制器中我有:
@model Site.Services.News.NewsItem
<div class="bs-callout bs-callout-primary">
<h2>
@Html.DisplayFor(model => item.Title)
</h2>
</div>
但我得到&#34; NullReferenceException&#34;当我尝试运行该应用程序时。我做错了什么?
根据评论进行编辑:
@model IEnumerable<Site.Services.News.NewsItem> - Does this belong here?
...other controller code here...
@foreach(var item in Model)
{
Html.Partial("_News", item);
}
答案 0 :(得分:3)
@model Site.Services.News.NewsItem
<div class="bs-callout bs-callout-primary">
<h2>
@Html.DisplayFor(model => model.Title)
</h2>
</div>
您的代码中存在语法错误,应该是model.Title
,而不是item.Title
,因为您在lambda表达式中将模型称为model
。
即。这是一样的:
@Html.DisplayFor(x => x.Title)
编辑:
您还需要在Html.Partial
@foreach(var item in Model)
{
@Html.Partial("_News", item);
}
答案 1 :(得分:0)
好吧,我的错误,我已经解决了,我在Html.Partial上错过了@!
我很惊讶这并没有引发异常或实际显示&#34; Html.Partial ......&#34;作为实际文本。
任何人都知道为什么这些都不是这样的?如果它没有抛出异常,那么为什么它不显示为纯文本?