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()的部分

你可能感兴趣的:(action)