-
四季花海
1、带有Render的方法返回值是void,在方法内部进行输出;不带的返回值类型为MvcHtmlString,所以只能这样使用:@Html.Partial 对应 @{Html.RenderPartial(....);}@Html.Action 对应 @{Html.RenderAction(....);}2、Html.Partial可以直接提供用户控件名作为参数,而Html.Action需要有对应的Action,在Action内部返回PartailResult(即retun PartialView())。3、对于简单的没有任何逻辑的用户控件,推荐使用Html.Partial;对于需要设置一些Model的用户控件,推荐使用Html.Action。当然,有Model数据也是可以使用Html.Partial方法的,可以看方法的重载。4、使用Html.Action有个好处,就是可以根据不同的场景选择不同的用户控件。比如:@Html.Action("UserInfoControl")在对应的UserInfoControl这个Action中,在用户未登录的时候,可以retun PartialView("LogOnUserControl");登录后,可以retun PartialView("UserInfoControl");
-
犯罪嫌疑人X
1、Action 、 RenderActionAction 方法以字符串的形式返回子视图,可以直接被呈现。RenderAction方法在适当的地方呈现子视图。//One alternative (renders a string)<%= Html.Action("ChildList") %>//Another alternative (renders in place)<% Html.RenderAction("ChildList"); %>2、Partial 、 RenderPartialPartial 方法以字符串的形式返回子视图,可以直接被呈现。RenderPartial方法在适当的地方呈现子视图。<% Html.RenderPartial("视图名", Model.Products); %>//或是指定UserControl的路径<% Html.RenderPartial("~/Views/Product/ProductList.ascx【视图路径】", Model.Products);%>3、区分:1)、Action 、Partial 以<%=开头后面无需加; 。RenderAction、RenderPartial 以<%开头 后面加; 。2)、Action、RenderAction加载方法的视图,执行Controller → Model → View的顺序,然后把产生的页面带回到原来的View中再回传。Partial、RenderPartial直接加载视图文件内容
-
哆啦的时光机
Html.RenderPartial与Html.RenderAction这两个方法都是用来在界面上嵌入用户控件的。Html.RenderPartial是直接将用户控件嵌入到界面上:<%Html.RenderPartial("LogOnUserControl");%>或<%Html.RenderPartial("~/Areas/Comm/Views/Shared/LogOnUserControl.ascx");%>注意:用第一种方法时,用户控件必须放在调用者同一目录下,也可以放在View/Shared中。Html.RenderAction则通过Controller中的Action来调用用户控件Controller:----用户控件所在Controllerpublic ActionResult UserControl(){return PartialView();}View:----调用用户控件的View<%Html.RenderAction("UserControl","Controller");%>