首先,我们一般在shared里面做的公用的ascx分部视图,没有特定的action,一般是把逻辑写在页面上,这样给页面载荷比较大。
事实上MVC2.0提供了一个方法,用来在页面上加载Action,通过这个方法,可以使分部视图活起来看代码。
banner.ascx
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<List<MvcApplication1.Controllers.Banner>>" %>
<%foreach (var i in Model) { %>名称:<%=i.Title%>網址:<%=i.Url %><br /><%} %>
index.aspx
<%Html.RenderAction("ReadASCX", new { type = 1 });%>
controller.cs
public ActionResult ReadASCX(int type) { List<Banner> model = new List<Banner> { new Banner( "新浪", "www.sina.com",1), new Banner( "搜狐", "www.sohu.com",1), new Banner( "人人网", "www.renren.com",2), new Banner( "开心网", "www.kaixin001.com",2), }; return PartialView("Banner", model.Where(i => i.Type == type).ToList()); }我们可以看到,实时上在action里已经做到了加载ascx的目的,而他的发起者是从前台来的。