Проблема с использованием частичного просмотра для каждого цикла - PullRequest
1 голос
/ 02 мая 2010

Я немного сбит с толку, я пытаюсь использовать частичное представление для каждого цикла, например

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

Я не понимаю, почему это происходит, когда я передаю элемент в частичное представление?

Ответы [ 3 ]

4 голосов
/ 02 мая 2010

Изменить частичное представление на:

<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>" %>
1 голос
/ 02 мая 2010

Ваш частичный элемент управления "articlelisttemaple.ascx" должен иметь следующее в верхней части элемента управления.

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

Это указывает на то, что представление имеет модель типа: "MVCLD.Models.Article".

Вместо «элемента» в частичном представлении следует использовать «Модель».

1 голос
/ 02 мая 2010

Элемент в частичном должен быть моделью, если вы объявили, что используете MVCLD.Models.Article в качестве модели для частичного!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...