关于asp.net MVC3 ----@Html.Partial,@Html.Action,@Html.RenderPartial,@Html.RenderAction
3个回答
展开全部
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");
@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");
展开全部
1、Action 、 RenderAction
Action 方法以字符串的形式返回子视图,可以直接被呈现。RenderAction方法在适当的地方呈现子视图。
//One alternative (renders a string)
<%= Html.Action("ChildList") %>
//Another alternative (renders in place)
<% Html.RenderAction("ChildList"); %>
2、Partial 、 RenderPartial
Partial 方法以字符串的形式返回子视图,可以直接被呈现。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直接加载视图文件内容
Action 方法以字符串的形式返回子视图,可以直接被呈现。RenderAction方法在适当的地方呈现子视图。
//One alternative (renders a string)
<%= Html.Action("ChildList") %>
//Another alternative (renders in place)
<% Html.RenderAction("ChildList"); %>
2、Partial 、 RenderPartial
Partial 方法以字符串的形式返回子视图,可以直接被呈现。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:----用户控件所在Controller
public ActionResult UserControl()
{
return PartialView();
}
View:----调用用户控件的View
<%Html.RenderAction("UserControl","Controller");%>
Html.RenderPartial是直接将用户控件嵌入到界面上:
<%Html.RenderPartial("LogOnUserControl");%>
或
<%Html.RenderPartial("~/Areas/Comm/Views/Shared/LogOnUserControl.ascx");%>
注意:用第一种方法时,用户控件必须放在调用者同一目录下,也可以放在View/Shared中。
Html.RenderAction则通过Controller中的Action来调用用户控件
Controller:----用户控件所在Controller
public ActionResult UserControl()
{
return PartialView();
}
View:----调用用户控件的View
<%Html.RenderAction("UserControl","Controller");%>
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询