MVC中@Html.Action的用法(类似自定义控件)

MVC项目中如果有公共部分的代码就可以单独拿出来作为控件来用(比如头部和底部代码)。跟ASP.NET中的ASCX实现的效果一样,但MVC比它方便的多。

一.@Html.Action的用法
@Html.Action有很多的构造方法在这里我只说一种也是经常用到的@Html.Action("视图","控制器")的用法。
首先我先创建一个控制器DaohangController.cs再在该控制器里添加一个视图方法RightDH,同时在Views文件夹里添加相应的cshtml页面。
这个时候就创建好了一个可以运行的RightDH页面,
可以直接访问/
Daohang/RightDH),看一下是否可以正常的访问。如果可以正常的访问,看下一步,
在你想要调用的页面调用RightDH页面(代码:@Html.Action("RightDH", "Daohang")),这个时候运行你调用该视图的页面,
就会看到RightDH页面的信息已经被调用过来了
是不是很简单,呵呵
 
二._ViewStart.cshtml文件是干什么用的?
说到这儿我说一下_ViewStart.cshtml这个文件,在MVC里都会看到这个页面的存在,这个是页面是不可访问的,但是你访问MVC里的每个页面的时候,
程序都会先访问_ViewStart.cshtml页面然后才是你要访问的页面。这就有一个好处,一些公共的html代码可以放到_ViewStart.cshtml文件里。
然后就是母版页,引用了母板页也就继承了母板页的所有代码,所以你可以把写好的头部和底部代码写成控件的方式,然后在母板页里面调用该控件(用
@Html.Action调用控件
然后让其他页面继承母板页,这样就区分开公共部分和非公共部分。也达到了代码重用的效果。
那么怎么继承母板页呢,有两个办法:1就是在创建页面的时候直接继承。2.直接在页面的顶部加上
@{   
    Layout = "~/Views/Shared/HeadFoot.cshtml";
}
红色部分就是母板页地址,在创建的页面里的内容都会替换到母板页里@RenderBody()的部分
posted @   苦逼的猿人  阅读(3300)  评论(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语句:使用策略模式优化代码结构
点击右上角即可分享
微信分享提示