为了账号安全,请及时绑定邮箱和手机立即绑定

关于asp.net MVC3 -

关于asp.net MVC3 -

扬帆大鱼 2019-03-02 14:03:37
关于asp.net MVC3 ----@Html.Partial,@Html.Action,@Html.RenderPartial,@Html.RenderAction这四个有啥区别,详细点,万分感谢
查看完整描述

3 回答

?
四季花海

TA贡献1811条经验 获得超5个赞

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");



查看完整回答
反对 回复 2019-03-09
?
犯罪嫌疑人X

TA贡献2080条经验 获得超4个赞

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直接加载视图文件内容


 


查看完整回答
反对 回复 2019-03-09
?
哆啦的时光机

TA贡献1779条经验 获得超6个赞

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");%>



查看完整回答
反对 回复 2019-03-09
  • 3 回答
  • 0 关注
  • 310 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信