1.首先看一下它们的对等关系
@Html.Partial 对应 @{Html.RenderPartial();}
@Html.Action 对应 @{Html.RenderAction();}
以上相互对应的语句,它们实现的功能是一样的,不同的就是写法,
2.Action加载方法的视图,执行 Controller → Model → View 的顺序,然后把产生的页面带回到原来的View中再回传。而Partial直接加载视图文件内容
[email protected]可以直接提供用户控件名作为参数,而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][email protected]["txt"] </div> </body>
总结:用@Html.Partial(页面),那么这个页面的里的数据源是“调用页面:index.cshtml”给的,只要index页面可以接受到的viewdata那么msg1就可以接受,index页面就是msg1页面的衣食父母。最后根据不同的用途来选择吧
时间: 2024-10-08 06:34:09