尝试在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
答案 0 :(得分:0)
也许您需要将模型传递给此部分:
<% 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
,您也可以考虑使用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>
现在将为模型集合的每个项目呈现显示模板。