博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
返璞归真 asp.net mvc (7) - asp.net mvc 3.0 新特性之 Controller
阅读量:6240 次
发布时间:2019-06-22

本文共 3485 字,大约阅读时间需要 11 分钟。

原文:

返璞归真 asp.net mvc (7) - asp.net mvc 3.0 新特性之 Controller

作者:
介绍
asp.net mvc 之 asp.net mvc 3.0 新特性之 Controller:

  • Global Action Filter
  • 可以在标记为 ChildActionOnly 的 Action 上使用 OutputCache
  • ViewBag
  • 新增了一些 Action Result

示例
1、Global Action Filter 的 Demo
Global.asax.cs(注册全局的 Action Filter)

protected void Application_Start(){    AreaRegistration.RegisterAllAreas();    RegisterRoutes(RouteTable.Routes);    /*     * 演示 Global Action Filter     */    // 实例化一个 Filter    var handleError = new HandleErrorAttribute();    // 指定 HandleErrorAttribute 的 View    handleError.View = "Error2";    // Order 属性的默认值为:-1,即不会被应用,所以这里要修改一下    handleError.Order = 0;    // 将 Filter 对象添加到全局 Filters 集合中    GlobalFilters.Filters.Add(handleError);}

 

Web.config

 

ControllerDemoController.cs

using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.Mvc;namespace MVC30.Controllers{    public class ControllerDemoController : Controller    {        // 用于演示 Global Action Filter        public ActionResult GlobalActionFilter()        {            throw new Exception("exception");        }    }}

 

GlobalActionFilter.cshtml(访问此页会抛出异常,然后跳转到Error2)

@{    ViewBag.Title = "Global Action Filter";}

GlobalActionFilter

 

Error2.cshtml(自定义错误页)

@{    Layout = null;}    Error    

Sorry, an error occurred while processing your request

Sorry, an error occurred while processing your request

Sorry, an error occurred while processing your request

Sorry, an error occurred while processing your request

Sorry, an error occurred while processing your request

 

2、标记为 ChildActionOnly 的 Action 支持 OutputCache
ControllerDemoController.cs

using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.Mvc;namespace MVC30.Controllers{    public class ControllerDemoController : Controller    {        public ActionResult ChildActionOnlyDemo()        {            return View();        }        // ChildActionOnly - 指定 Action 只能让 RenderAction 调用        // OutputCache() - 缓存。Duration - 缓存秒数。VaryByParam - none, *, 多个参数用逗号隔开。也可以通过配置文件对缓存做设置        [ChildActionOnly]        [OutputCache(Duration = 5)]        public PartialViewResult _GetCurrentTime()        {            var currentTime = DateTime.Now;            return PartialView(currentTime);        }    }}

 

_GetCurrentTime.cshtml

@*    通过 @model 指定 Model 的类型,同时 Model 对象就是 Action 返回的数据*@@model DateTime
currentTime: @Model.ToString("yyyy-MM-dd HH:mm:ss")

 

ChildActionOnlyDemo.cshtml

@{    ViewBag.Title = "可以在标记为 ChildActionOnly 的 Action 上使用 OutputCache";}

ChildActionOnlyDemo

@{ Html.RenderAction("_GetCurrentTime"); }
@Html.Action("_GetCurrentTime")

 

3、 新增了 ViewBag
ControllerDemoController.cs

using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.Mvc;namespace MVC30.Controllers{    public class ControllerDemoController : Controller    {        // 用于 ViewBagDemo        public ActionResult ViewBagDemo()        {            // ViewBag 的本质就是把 ViewData 包装成为 dynamic 类型            ViewBag.Message = "ViewBag 的 Demo";            return View();        }    }}

 

ViewBagDemo.cshtml

@{    ViewBag.Title = "ViewBag";}

ViewBag

Message: @ViewBag.Message

 

4、 新增的 Action Result

Controller 中新增了一些 Action Result: HttpNotFoundResult, HttpRedirectResult, HttpStatusCodeResult

 

OK
 

转载地址:http://mpsia.baihongyu.com/

你可能感兴趣的文章
SpringCloud(第 021 篇)Zuul 的过滤器 ZuulFilter 的使用
查看>>
JavaScript笔记——闭包
查看>>
gRPC 初探
查看>>
SpringBoot非官方教程 | 第六篇:SpringBoot整合mybatis
查看>>
dataguard备库出现GAP修复
查看>>
OOD、DIP、IOC、DI、依赖注入容器(即 控制反转容器,IOC Container)
查看>>
Linux常用命令
查看>>
Grub4Dos 手动引导指令
查看>>
C# 有道API翻译 查询单词详细信息
查看>>
android 录像提示音问题
查看>>
纯CSS制作各种图形(多图预警)
查看>>
程序员如何获取招聘信息
查看>>
水平滑动,记录当前状态、利用浏览器原生播放器播放视频和vue-video-player视频播放插件、基于museUI的音频播放和vue-player插件实现音频播放...
查看>>
Kaa IoT平台学习(一)
查看>>
深入了解JVM虚拟机8:Java的编译期优化与运行期优化
查看>>
使用Nagios打造专业的业务状态监控
查看>>
单例模式(java&iOS)
查看>>
重拾Java(8)-反射
查看>>
有没有可以共享的桌面便签?
查看>>
Mars说光场(3)— 光场采集
查看>>