也许这个问题很简单,因为我是MVC2的新手。我有一个简单的演示MVC项目。
(1)弱类型视图:Index.aspx
<% Html.RenderPartial("ArticalList", ViewData["AllArticals"] as List<Artical>); %>
(2)强类型局部视图:ArticalList.ascx
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<List<Artical>>" %>
<% foreach (Artical a in Model) { %>
<%= Html.ActionLink(a.Title, "About", new { id = a.ID })%><br />
<%} %>
(3)这是HomeController.cs
public ActionResult Index()
{
ViewData["AllArticals"] = Artical.GetArticals();
return View();
}
public ActionResult ArticalList()
{
return PartialView(Artical.GetArticals());
}
抱歉,我正在使用Web表单“角度”,因为如果我使用Web表单,当我访问Index.aspx时,呈现ArticalList.ascx将调用公共ActionResult ArticalList()。但在这里,我需要在两个动作中两次写出Artical.GetArticals()。我怎么把它们放在一起?
答案 0 :(得分:1)
据我所知,作为MVC最近的新手,部分视图不使用控制器中的动作方法。 "ArticalList"
仅是对部分视图文件的引用,不会再生成操作方法的请求。部分视图从调用它的视图中获取所有数据。
Html.RenderAction
可能是你感到困惑的行为。