首先,我们一般在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的目的,而他的发起者是从前台来的。