问题使用部分视图在每个循环(Problem Using Partial View In for ea

2019-09-29 03:47发布

我有点困惑在这里,我想在使用局部视图,像这样每次循环

    <% foreach (var item in (IEnumerable<MVCLD.Models.Article>)ViewData["LatestWebsites"]){%>
    <% Html.RenderPartial("articlelisttemaple", item); %>
<% }  %>

而我的部分观点是这样的

            <div class="listingholders">
            <h4><%=Html.ActionLink(item.ArticleTitle, "details", "article", new { UrlID = item.UrlID, ArticleName = item.ArticleTitle.ToString().niceurl() }, null)%> </h4>
            <p><%= Html.Encode(item.ArticleSnippet) %></p>
            <div class="clearer">&nbsp;</div>
        </div>

但是,当我运行该项目,我得到告诉局部视图不明白是什么产品?

CS0103: The name 'item' does not exist in the current context

我不明白为什么会做这个,因为我通过项目到局部视图?

Answer 1:

改变局部视图:

<div class="listingholders">
     <h4><%=Html.ActionLink(Model.ArticleTitle, "details", "article", new { UrlID = Model.UrlID, ArticleName = Model.ArticleTitle.ToString().niceurl() }, null)%> </h4>
     <p><%= Html.Encode(Model.ArticleSnippet) %></p>
     <div class="clearer">&nbsp;</div>
</div>

局部视图必须从继承System.Web.Mvc.ViewUserControl<MVCLD.Models.Article>

这是局部视图的第一行应该怎么样子:

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<MVCLD.Models.Article>" %>


Answer 2:

在部分项目应该是模型,如果你已经宣布你正在使用MVCLD.Models.Article作为部分的典范!



Answer 3:

您的局部控制“articlelisttemaple.ascx”应该有控制的顶部以下。

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<MVCLD.Models.Article>" %>

这表明该视图有类型的模式:“MV​​CLD.Models.Article”。

相反,在局部视图“项”的,你应该使用“模型”。



文章来源: Problem Using Partial View In for each loop