MVC初级知识之——View与Controller的讲解
2018-06-22 07:27:10来源:未知 阅读 ()
Controller是MVC中比较重要的一部分。几乎所有的业务逻辑都是在这里进行处理的,并且从Model中取出数据。在ASP.NET MVC Preview5中,将原来的Controller类一分为二,分为了Controller类和ControllerBase类。Controller类继承自ControllerBase类,而ControllerBase实现是了IController接口。
ControllerBase实现了IController接口的Execute方法,在Route匹配到Controller之后,就会调用Execute方法来进入Controller的处理。这里还定义了一个抽象的方法ExecuteCore方法,该方法会在Execute方法的最后被调用。Controller类还定义很多有用的方法,我们新建的Controller都必须继承自这个Controller类。例如我们新建一个AdminController:
下面谈一下在Controller中比较重要的Action方法。在ASPNET MVC中URL都是映射到Controller中的某个Action中,然后由匹配的Action来处理我们的业务逻辑并返回view的。Controller中的public的方法都被当作是Action方法。Action方法通常返回一个ActionResult的结果。默认情况下,Action方法的方法名就是这个Action的Action名(Action名指的是Route中匹配Action方法的URL的那部分。例如url:Home/Index,其中Index就是Action名)。
ASP.NET MVC为我们提供了几种ActionResult的实现
最常用
ActionResult Action方法返回ActionResult类型的结果。
FileResult写入文件内容,具体的写入方式在派生类中
PartialViewResult调用父类ViewResultBase的ExecuteResult方法。
重写了父类的FindView方法。
JsonResult.返回SON结果。由Json方法返回。
不常用
ViewResult.呈现视图页给客户端。由View方法返回。
RedirectToRouteResult.重定向到另外一个Route。由RedirectToAction 和RedirectToRoute方法返回。
RedirectResult.重定向到另外一个URL。由Redirect方法返回。
ContentResult.返回普通的内容。例如一段字符串。由Content方法返回。
EmptyResult.如果Action必须返回空值,可以返回这个结果。Controller中没有实现的方法,可以return new EmptyResult();
Action方法的参数
例如我们要在AdminController中定义一个编辑日志的Action方法:
对于URL:Admin/EditPost/2,上面的参数会自动被赋值为2。ASP.NET MVC在匹配Route的时候会根据Route的设置自动为Action方法的参数赋值。所以前面的id参数会被自动赋值为2的前提是,在Route配置的时候,必须指定了id参数,例如:
- Viewstart.cshtml是一个在呈现View文件的时候的启动文件,会在所有View(.cshtml)被执行之前执行。
- 注意,是在View被呈现的时候才会调用Viewstart.cshtml,如果一个View是按照PartialView(分布页不会调用母版页)的方式输出的,则不会触发_Viewstart.cshtml中的代码。
- 如果在View的某个目录下(例如Home目录)也有一个同名的ViewStart.cshtm文件,那么这个_ViewStart也会被调用,但是最先调用的还是最外面的_Viewstart,然后再是Home目录下的ViewStart。
一个完整的View是通过与Layout和其他局部View组合而来,如何开发一个Layout?
@RenderBody0
当创建基于此布局页面的视图时,视图的内容会和布局页面合并,而新创建视图的内容
会通过布局页面的@RenderBody()方法呈现在标签之间。
@Html.Partial("_LoginPartial")
可以调用局部的分布页呈现在当前区域。
@RenderSection("footer",false)
布局页面还有节(Section)的概念,也就是说,如果某个视图模板中定义了一个节,那么可以把它单独呈现出来。
当然还要在视图中定义节,否则会出现异常:
@section footer{
<div>Hello word</div>
}
实例产品基于asp.net mvc 5.0框架,源码下载地址:http://www.jinhusns.com/Products/Download
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- Asp.net MVC SignalR来做实时Web聊天实例代码 2020-03-29
- ASP.NET MVC中jQuery与angularjs混合应用传参并绑定数据 2020-03-29
- ASP.NET MVC Admin主页快速构建 2020-03-23
- Asp.Net MVC4通过id更新表单内容的思路详解 2020-03-19
- MVC数据验证详解 2020-03-14
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash