在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
在ASP.NET MVC中,创建视图最典型的方式是调用一个action方法,它使用模型准备视图数据。action方法然后调用控制器的视图方法创建视图。然而,你可能想要调用不同的动作方法创建视图的不同部分。例如,可能你有一页面展现了最新新闻,天气和运动。在那种情况下,用三个动作方法是比较好的,一个动作方法处理新闻,另一个处理天气,还有一个处理运动。那样你可以在不同条件下呈现不同的视图,或者是将复杂的视图分解为小型的,更容易管理的片段。 这个主题描述了如何在创建多个视图分段(子视图)的一个视图(父视图)里调用多个动作方法。 1. 父视图和子视图 例如,一个子视图创建一个列表,视图可能仅仅包含列表所需要的HTML,像下面的例子:
<ul>
<li>Item 1</li> <li>Item 2</li> <li>Item 3</li> </ul>
所有其它的标记(body, head等等)会在包含在父视图中。
2.调用Action和RenderAction辅助方法用于呈现子视图 Action方法以字符串的形式返回子视图,可以直接被呈现。RenderAction方法在适当的地方呈现子视图。
public ActionResult ChildList()
{ return View(); }
注意在控制器中,没有特定的方法呈现父视图或子视图。你呈现一个父视图,父视力再依次呈现它需要的子视图。
// One alternative (renders a string)
<%= Html.Action("ChildList") %> //Another alternative (renders in place) <% Html.RenderAction("ChildList"); %>
注意因为Html.Action辅助方法返回字符串,必须要等号"="。
3.为辅助方法传递参数
<% Html.RenderAction("Display", new { section = "News" }); %>
<% Html.RenderAction("Display", new { section = "Weather" }); %>
呈现动作方法看起来可能像下面的例子:
public ActionResult Display(string section)
{ return View(section); }
4.从其它控制器或区域调用动作方法
<% Html.RenderAction("Display", "Section"); %>
如果你需要的动作方法在其它的区域中,你可以在对象中传递区域名称,如下:
<% Html.RenderAction("Display", new { area = "Navigation" }); %>
通过使用RenderAction不同的重载方法,你就可以在不同的区域调用不同的控制器。
原文地址:http://msdn.microsoft.com/en-us/library/ee839451(v=VS.100).aspx |
请发表评论