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

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

2017年06月01日 16:12:08 【蓦然回首】 阅读数 4930

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这个文件,在MVC里都会看到这个页面的存在,这个是页面是不可访问的,但是你访问MVC里的每个页面的时候,程序都会先访问_ViewStart.cshtml页面然后才是你要访问的页面。这就有一个好处,一些公共的html代码可以放到_ViewStart.cshtml文件里。
      然后就是母版页,引用了母板页也就继承了母板页的所有代码,所以你可以把写好的头部和底部代码写成控件的方式,然后在母板页里面调用该控件(用@Html.Action调用控件),然后让其他页面继承母板页,这样就区分开公共部分和非公共部分。也达到了代码重用的效果。
      那么怎么继承母板页呢,有两个办法:1就是在创建页面的时候直接继承。2.直接在页面的顶部加上
     @{   
         Layout = "~/Views/Shared/HeadFoot.cshtml";
      }
     红色部分就是母板页地址,在创建的页面里的内容都会替换到母板页里@RenderBody()的部分

原文地址:https://www.cnblogs.com/grj001/p/12224730.html