@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的用法

1
2
3
4
5
6
public ActionResult Index()
{
    string[] txtArry = { "1", "2", "3" };
    ViewData["txt"] = "欢迎";
    return View(txtArry);
}

index.cshtml页面

1
2
3
4
5
6
7
8
9
10
<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页面

1
2
3
4
5
<body>
    <div>
        @Model[0]+@ViewData["txt"]
    </div>
</body>

 总结:用@Html.Partial(页面),那么这个页面的里的数据源是“调用页面:index.cshtml”给的,只要index页面可以接受到的viewdata那么msg1就可以接受,index页面就是msg1页面的衣食父母。最后根据不同的用途来选择吧

 

posted @   苦逼的猿人  阅读(3131)  评论(0编辑  收藏  举报
编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
点击右上角即可分享
微信分享提示