Несколько частичных просмотров на одном главном asp.net - PullRequest
0 голосов
/ 12 апреля 2011

пытается поместить строго типизированное частичное представление на домашнюю страницу в asp.net, но, похоже, это не сработает, вот мой код

плохо знакомы с asp.net и частичными представлениями.

Контроллер:

    public ActionResult VenuePartial()
    {
        ViewData["Message"] = _entities.VenuePartialList();
        return View();
    }

Хранилище:

    public IEnumerable<Venue> VenuePartialList()
    {
        var list = from s in _entities.Venue
                   orderby s.name ascending
                   select s;
        return list.ToList();
    }

IRepository:

    IEnumerable<Venue> VenuePartialList();

Страница указателя:

   <%Html.RenderPartial("~/Views/Venue/VenuePartial.ascx");%>

Любая помощь была бы благодарна как можно скорее, пожалуйста С уважением, T

1 Ответ

0 голосов
/ 12 апреля 2011

Возможно, вам нужно передать модель в этот фрагмент:

<% Html.RenderPartial("~/Views/Venue/VenuePartial.ascx", ViewData["Message"]); %>

И, кстати, WTF вы используете ViewData["Message"] для передачи модели вместо использования модели и строго типизированного представления:

public ActionResult VenuePartial()
{
    return View(_entities.VenuePartialList());
}

и затем:

<% Html.RenderPartial("~/Views/Venue/VenuePartial.ascx", Model); %>

Это, очевидно, предполагает, что ваше частичное строго типизировано в IEnumerable<Venue>. Если он введен в один Venue, вы также можете рассмотреть возможность использования Редактор / Шаблоны отображения . Итак, в вашем основном виде:

<%= Html.DisplayForModel() %>

и в соответствующем шаблоне отображения (~/Views/Shared/DisplayTemplates/Venue.ascx):

<%@ Control 
    Language="C#" 
    Inherits="System.Web.Mvc.ViewUserControl<AppName.Models.Venue>" %>
<span>
    <%= Html.DisplayFor(x => x.SomePropertyOfVenue) %>
</span>

и теперь шаблон отображения будет отображаться для каждого элемента коллекции моделей.

...