0

试图在 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();
    }

存储库:

    IEnumerable<Venue> VenuePartialList();

索引页:

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

任何帮助将不胜感激,请尽快问候T

4

1 回答 1

0

也许您需要将模型传递给这个部分:

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

顺便说一句,您使用 WTFViewData["Message"]传递模型而不是使用模型和强类型视图:

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

接着:

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

这显然假设您的 partial 是强类型为IEnumerable<Venue>. 如果它是单一的Venue,你也可以考虑使用Editor/Display Templates。所以在你的主要观点中:

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

现在将为模型集合的每个项目呈现显示模板。

于 2011-04-11T22:09:39.927 回答