zoukankan      html  css  js  c++  java
  • Asp.net MVC 视图引擎

    Asp.net MVC视图引擎有两种:

    1、ASPX View Engine

    这个做过WebForm的人都清楚

    设计目标:一个用于呈现Web Form页面的输出的视图引擎。

    2、Razor View

    在Asp.net MVC 3 版本引入的, 可以支持UnitTest,也容易上手。

    Razor在减少代码冗余、增强代码可读性和vs 智能感知方面,都有着很大的优势。

    下面主要讨论下视图引擎

    ActionResult

    讲到视图引擎,不得不说ActionResult,因为在Controller中,我们看不到一点视图引擎的影子,唯一提供线索的只有ActionResult,所以我们必须先从AcionResult下手

    下面是ASP.NET MVC提供的所有的ActionResult类型的类图:

    最具代表性的是ViewResult

    在Asp.net MVC中,ViewResult用的最多,Controller有一个View方法,它来实例化一个ViewResult对象,并返回。

    这里只介绍几个最常用的Result用法:

    (1)EmptyResult

      当用户有误操作或者是图片防盗链的时候,这个EmptyResult就可以派上用场,返回它可以让用户啥也看不到内容,通过访问浏览器端的源代码,发现是一个空内容;

    public ActionResult Empty()
    {
          return new EmptyResult();
    }

    (2)Content

    通过Content可以向浏览器返回一段字符串类型的文本结果,就相当于Response.Write("xxxx");一样的效果;

    public ActionResult ContentResultDemo()
    {
          string contentString = "Hello Edison Chou!";
          return Content(contentString);
    }

    (3)File

    通过File可以向浏览器返回一段文件流,主要用于输出一些图片或文件提供下载等;

    public ActionResult FileStreamResultDemo()
    {
          FileStream fs = new FileStream(Server.MapPath(@"/Content/programmer.jpg"),
          FileMode.Open, FileAccess.Read);
          return File(fs, @"image/gif");
    }

    (4)HttpUnauthorizedResult

    通过HttpUnauthorizedResult可以向浏览器输出指定的状态码和状态提示,如果不指定状态码,则默认为401无权访问;

    public ActionResult HttpUnauthorizedResultDemo()
    {
         return new HttpUnauthorizedResult();
    }

    (5)Redirect与RedirectToAction:

    重定向与重定向到指定Action,我一般使用后者,主要是向浏览器发送HTTP 302的重定向响应;

    public ActionResult RedirectResultDemo()
    {
      return Redirect(@"http://localhost:23531/Home/ContentResultDemo");
    }
    
    public ActionResult RedirectToRouteResultDemo()
    {
      return RedirectToAction("FileStreamResultDemo", "Home");
    }

    (6)Json

    通过Json可以轻松地将我们所需要返回的数据封装成为Json格式,进行Ajax开发可以变得so easy!

    public ActionResult JsonResultDemo()
    {
          var tempObj = new { Controller = "HomeController", Action = "JsonResultDemo" };
          return Json(tempObj, JsonRequestBehavior.AllowGet);
    }

    (7)JavaScript

    可以通过JavaScriptResult向浏览器单独输出一段JS代码,不过由于主流浏览器都对此进行了安全检查,因此你的JS代码也许无法正常执行,反而是会以字符串的形式显示在页面中;

  • 相关阅读:
    java实现第四届蓝桥杯好好学习
    java实现第四届蓝桥杯好好学习
    java实现第四届蓝桥杯好好学习
    IntelliJ Idea 常用快捷键 列表(实战终极总结!!!!)
    Intelli IDEA快捷键(配合IdeaVim)
    findBugs学习小结
    Long.ValueOf("String") Long.parseLong("String") 区别 看JAVA包装类的封箱与拆箱
    【报错】IntelliJ IDEA中绿色注释扫描飘红报错解决
    IDEA入门级使用教程----你怎么还在用eclipse?
    玩转Vim 编辑器
  • 原文地址:https://www.cnblogs.com/ck168/p/5508457.html
Copyright © 2011-2022 走看看