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代码也许无法正常执行,反而是会以字符串的形式显示在页面中;

Asp.net MVC 视图引擎的更多相关文章

  1. (转)Asp.Net Mvc视图引擎Razor介绍

    Asp.Net Mvc视图引擎Razor介绍 1.Razor介绍 程序园原创,转载请注明:http://www.kwstu.com/ArticleView/dabaomvc_2014082408205 ...

  2. asp.net mvc视图引擎

    继上周介绍了Razor之后,ASP.NET MVC 现在已有四种主要的视图引擎.其他三种引擎是Spark.NHaml和传统的ASPX文件模板.本文将大致介绍这四种引擎,并着重讨论新的Razor引 擎. ...

  3. Asp.Net Mvc视图引擎Razor介绍

    1.Razor介绍 1)ASP.NET MVC3 带来了一种新的名为Razor 的视图引擎,提供了下列优点: Razor 的语法简单且清晰,只需要最小化的输入 Razor 容易学习,语法类似于 C#  ...

  4. ASP.NET MVC 视图(五)

    ASP.NET MVC 视图(五) 前言 上篇讲解了视图中的分段概念.和分部视图的使用,本篇将会对Razor的基础语法简洁的说明一下,前面的很多篇幅中都有涉及到视图的调用,其中用了很多视图辅助器,也就 ...

  5. ASP.NET MVC 视图(四)

    ASP.NET MVC 视图(四) 前言 上篇对于利用IoC框架对视图的实现进行依赖注入,最后还简单的介绍一下自定义的视图辅助器是怎么定义和使用的,对于Razor语法的细节和辅助器的使用下篇会说讲到, ...

  6. ASP.NET MVC 视图(三)

    ASP.NET MVC 视图(三) 前言 上篇对于Razor视图引擎和视图的类型做了大概的讲解,想必大家对视图的本身也有所了解,本篇将利用IoC框架对视图的实现进行依赖注入,在此过程过会让大家更了解的 ...

  7. ASP.NET MVC 视图(二)

    ASP.NET MVC 视图(二) 前言 上篇中对于视图引擎只是做了简单的演示,对于真正的理解视图引擎的工作过程可能还有点模糊,本篇将会对由MVC框架提供给我们的Razor视图引擎的整个执行过程做一个 ...

  8. ASP.NET MVC 视图(一)

    ASP.NET MVC 视图(一) 前言 从本篇开始就进入到了MVC中的视图部分,在前面的一些篇幅中或多或少的对视图和视图中的一些对象的运用进行了描述,不过毕竟不是视图篇幅说的不全面,本篇首先为大家讲 ...

  9. ASP.NET Razor 视图引擎编程参考

    ASP.NET Razor 视图引擎编程参考   转载请注明出处:http://surfsky.cnblogs.com Rasor 视图引擎    http://msdn.microsoft.com/ ...

随机推荐

  1. Implement strStr() [LeetCode]

    Implement strStr(). Returns a pointer to the first occurrence of needle in haystack, or null if need ...

  2. nodejs之process进程

    虽然node对操作系统做了很多抽象的工作,但是你还是可以直接和他交互,比如和系统中已经存在的进程进行交互,创建工作子进程.node是一个用于事件循环的线程,但是你可以在这个事件循环之外创建其他的进程( ...

  3. js6类和对象

    // 第一种:对象 var person = {};// 或者var obj = new Object(); person.name = "king"; person.age =  ...

  4. ios 打包

    /usr/bin/xcodebuild -scheme Moon -sdk iphoneos -workspace Moon.xcworkspace -configuration Release cl ...

  5. macbook上实现MacOS+Windows8+Ubuntu三系统

    至于为什么要装win和linux就不说了,本文只解释安装过程. GPT vs MBR MacOS下装另外两个系统的一个基本问题是:硬盘使用GPT分区,它和常见的MBR分区是两个硬盘分区方式. 它们的主 ...

  6. Dooioo Deal

    using AnfleCrawler.Common; using System; using System.Collections.Generic; using System.Linq; using ...

  7. 安装debian第一天遇到的几个问题及解决方案

    1.当我想要使用sudo时,提示 bash: sudo: command not found 一开始以为是PATH不对,就各种百度各种试 export PATH=${PATH}:$HOME/bin:/ ...

  8. css3 弹框功能样式

    .message-box{ position: fixed; top: 0; right: 0; bottom: 0; left: 0; background-color: rgba(0, 0, 0, ...

  9. javaEE(web)SEO优化 Yahoo军规

    javaEE(web)SEO优化 Yahoo军规 1.尽可能减少HTTP请求数2.使用CDN3.添加Expire/Cache-Control头4.启用Gzip压缩5.将CSS房在页面最上方6.将Scr ...

  10. C#—打开文件

    一.打开图片 ps:必须先在pictureBox中导入一张图片 private void button4_Click(object sender, EventArgs e)//选择.更换图片 { if ...