“); } }); }); }); </script> ViewUserControl.cshtml (Partial View) @model Sample.Models.PartialViewDemoViewModel
viewUserControl = viewInstance as ViewUserControl; if (viewUserControl ! (viewContext.ViewData); viewUserControl.RenderView(viewContext); System.Web.Compilation.BuildManager BuildManager 类管理应用程序的程序集和页的编译过程),后面通过 as 转换结果来判断视图是 ViewPage 还是 ViewUserControl Controls.Add(userControl); } } } } 以直接在 Controller 中 RenderView 一个用户控件(ViewUserControl ),asp.net mvc 会替我们创建了一个 "空白页" (ViewUserControlContainerPage )来装载这个控件RenderView(ViewUserControl) 有个限制,
Html.SelectList_Category() 我们从代码中可以看到,这个扩展方法其实是对ViewPage页面类上的HtmlHelper对象进行的扩展,它的对象名称是Html,所以在继承了ViewPage或者ViewUserControl
例如我们建立一个ct.ascx 其内容: 1: <%@ Control Language="C#" Inherits="System.Web.Mvc.<em>ViewUserControl</em>" %> );//注意这里不是View 3: } View(CtAction.ascx) 1: <%@ Control Language="C#" Inherits="System.Web.Mvc.<em>ViewUserControl</em>
于是新建了一个ascx页,我们将之少做改写一下 <%@ Control Language="C#" Inherits="System.Web.Mvc.<em>ViewUserControl</em>" %>
创建一个Partial View(局部视图),内容可参考这样: <%@ Control Language="C#" Inherits="System.Web.Mvc.<em>ViewUserControl</em>" %
4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" userControlBaseType="System.Web.Mvc.ViewUserControl