@Html.Partial和@Html.Action区别
1.首先看一下它们的对等关系
@Html.Partial 对应 @{Html.RenderPartial();}
@Html.Action 对应 @{Html.RenderAction();}
以上相互对应的语句,它们实现的功能是一样的,不同的就是写法,
2.Action加载方法的视图,执行 Controller → Model → View 的顺序,然后把产生的页面带回到原来的View中再回传。而Partial直接加载视图文件内容
3.@Html.Partial可以直接提供用户控件名作为参数,而Html.Action需要有对应的Action,在Action内部返回PartailResult(即retun PartialView())。
如:下面例子可以说明@Html.Partial的用法
public ActionResult Index() { string[] txtArry = { "1", "2", "3" }; ViewData["txt"] = "欢迎"; return View(txtArry); }
index.cshtml页面
<body> <div> @*这里应该显示:1*@ @Model[0] </div> <div> @*调用msg1.cshtml*@ @Html.Partial("msg1") </div> </body>
如果@Html.Partial("msg1")没有传具体的值,那么它就会默认把index里的Model值传过去,如果有具体的参数,那么msg1里的Model值就是为传过来的参数值
如:@Html.Partial("msg1",(object)Model[1])
msg1.cshtml页面
<body> <div> @Model[0]+@ViewData["txt"] </div> </body>
总结:用@Html.Partial(页面),那么这个页面的里的数据源是“调用页面:index.cshtml”给的,只要index页面可以接受到的viewdata那么msg1就可以接受,index页面就是msg1页面的衣食父母。最后根据不同的用途来选择吧
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。