【问题标题】:Problem Using Partial View In for each loop对每个循环使用局部视图时出现问题
【发布时间】:2011-02-14 17:59:30
【问题描述】:

我在这里有点困惑,我正在尝试在 for each 循环中使用部分视图,就像这样

    <% 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

当我将项目传递到局部视图时,我不明白它为什么会这样做?

【问题讨论】:

    标签: asp.net-mvc model-view-controller asp.net-mvc-2 views partial-views


    【解决方案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&lt;MVCLD.Models.Article&gt;

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

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

    【讨论】:

    • 谢谢,现在我明白了——希望我能很快得到这个 MVC 的东西 :)
    【解决方案2】:

    如果您已声明使用 MVCLD.Models.Article 作为部分的模型,则部分中的项目应该是模型!

    【讨论】:

    • 如果我将部分更改为

      我收到一条错误消息说 CS1061: 'object' does not contain a definition for 'ArticleTitle' and no extension method 'ArticleTitle' 接受第一个参数类型'可以找到对象'(您是否缺少 using 指令或程序集引用?)
    【解决方案3】:

    您的部分控件“articlelisttemaple.ascx”应在控件顶部包含以下内容。

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

    这表明视图有一个类型为“MVCLD.Models.Article”的模型。

    您应该使用“模型”而不是局部视图中的“项目”。

    【讨论】:

      猜你喜欢
      • 2015-04-20
      • 2012-08-31
      • 2011-11-17
      • 2011-07-15
      • 1970-01-01
      • 1970-01-01
      • 2011-08-20
      • 1970-01-01
      • 2012-01-14
      相关资源
      最近更新 更多