爱上MVC~为非法进行Action的用户提供HttpStatusCodeResult

简介:

对一MVC来说,它有Controller和Action,其中Action用来为页面提供数据和相关逻辑,并最后将页面渲染出来,而有些action是需要一些参数的,如文章的最终页,可能需要一个ID,而这个ID通常是和某个链接集成在一起的,不需要浏览者手动在URL上改,而有些被称为无聊的用户或者马虎的程序员就把ID参数忽略了,这时,我们的action一般是直接抛出Exception,而这对于一个页面来说,并不是很优雅,对于一个WEB请求,应该返回一个HttpStatusCodeResult的状态结果,这个对象在WebApi中使用的比较频繁.

HttpStatusCodeResult对象结构如下

  View Code

HttpStatusCode是一个枚举类型,我们经常见到了404,500等HTTP请求码,都可以在这里枚举里找到

  View Code

让我们在Action中使用它,看一下程序修改后的样式吧

    public  ActionResult Details(int? id)
        {
            //参数不正确,直接抛出对应的HttpStatusCodeResult结果
            if (id == null)
            {
                return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
            }

            //你的逻辑
            return View();
        }

结果截图

在进行MVC4之后,它同样支持异步Action,即它在独立的线程中运行,而不会使用主WEB线程阻塞

   public async Task<ActionResult> Details(int? id)
        {
            //参数不正确,直接抛出对应的HttpStatusCodeResult结果
            if (id == null)
            {
                return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
            }

            //你的逻辑
            return View();
        }

对于MVC的研究,我们还在继续,等待MVC5的带来!

本文转自博客园张占岭(仓储大叔)的博客,原文链接:爱上MVC~为非法进行Action的用户提供HttpStatusCodeResult,如需转载请自行联系原博主。

目录
相关文章
|
前端开发 数据库
MVC中Action之间传值
MVC中Action之间传值
133 0
MVC中Action之间传值
|
前端开发
艾伟:[一步一步MVC]第一回:使用ActionSelector控制Action的选择
本系列文章导航 [一步一步MVC]第一回:使用ActionSelector控制Action的选择 [一步一步MVC]第二回:还是ActionFilter,实现对业务逻辑的统一Authorize处理 [一步一步MVC]第三回:MVC范例大观园 [一步一步MVC]第四回:漫谈ActionLink,有时“...
861 0
|
JavaScript 前端开发 .NET
【nodejs】让nodejs像后端mvc框架(asp.net mvc)一样处理请求--请求处理函数装饰器注册篇(5/8)【controller+action】
文章目录 前情概要 上篇文章把action的注册讲完了,但是我们的处理函数没有指定可接受的httpmethod,也没有别名上面的。下面我们使用typescript的特性之一装饰器来实现一把这个特性。 在控制器和处理函数的注册篇中有说到的第三,第四个参数就在这里排上用场拉。
1099 0
|
缓存 JavaScript 前端开发
【nodejs】让nodejs像后端mvc框架(asp.net mvc)一样处理请求--控制器和处理函数的注册篇(4/8)【controller+action】
文章目录 前情概要 前边的文章把一些基本的前置任务都完成了。接下就是比较重要的处理函数action是如何自动发现和注册的拉,也就是入口函数RouteHandler(也是我们的第一个express中间件)里面的一些细节。
923 0
|
Web App开发 前端开发 索引