Asp.net MVC 中Controller返回值类型ActionResult

内容转自 http://blog.csdn.net/pasic/article/details/7110134

Asp.net MVC中Controller返回值类型

在mvc中所有的controller类都必须使用"Controller"后缀来命名
并且对Action也有一定的要求:

  • 必须是一个public方法
  • 必须是实例方法
  • 没有标志NonActionAttribute特性的(NoAction)
  • 不能被重载
  • 必须返回ActionResult类型

如:

[csharp] view plain copy

  1. public class MyController : Controller
  2. {
  3. // 必须返回ActionResult类型
  4. public ActionResult HelloWorld()
  5. {
  6. ViewData["Message"] = "Hello World!";
  7. return View();
  8. }
  9. }

下面列举Asp.net MVC中Controller中的ActionResult返回类型
1、返回ViewResult视图结果,将视图呈现给网页

[csharp] view plain copy

  1. public ActionResult About()
  2. {
  3. return View(); // 参数可以返回model对象
  4. }

2、 返回PartialViewResult部分视图结果,主要用于返回部分视图内容
在View/Shared目录下创建ViewUserControl.cshtml部分视图

[csharp] view plain copy

  1. public ActionResult UserControl()
  2. {
  3. ViewBag.Message = "部分视图";
  4. return PartialView("ViewUserControl");
  5. }

页面调用@ViewBag.Message 将输出“部分视图”
3、 返回ContentResult用户定义的内容类型

[csharp] view plain copy

  1. public ActionResult Content()
  2. {
  3. return Content("Test Content", "text/html"); // 可以指定文本类型
  4. }

页面输出“Test Content”;
此类型多用于在ajax操作中需要返回的文本内容
4、 返回JsonResult序列化的Json对象

[csharp] view plain copy

  1. public ActionResult Json()
  2. {
  3. Dictionary<string, object> dic = new Dictionary<string, object>();
  4. dic.Add("id", 100);
  5. dic.Add("name", "hello");
  6. return Json(dic, JsonRequestBehavior.AllowGet);
  7. }

主要用于返回json格式对象,可以用ajax操作;
注意:需要设置参数,JsonRequestBehavior.AllowGet,
否则会提示错误:此请求已被阻止,因为当用在 GET 请求中时,会将敏感信息透漏给第三方网站。
若要允许 GET 请求,请将 JsonRequestBehavior 设置为 AllowGet。
5、返回JavaScriptResult可在客户端执行的脚本

[csharp] view plain copy

  1. public ActionResult JavaScript()
  2. {
  3. string str = string.Format("alter(‘{0}‘);", "弹出窗口");
  4. return JavaScript(str);
  5. }

但这里并不会直接响应弹出窗口,需要用页面进行再一次调用。
这个可以方便根据不同逻辑执行不同的js操作
6、返回FileResult要写入响应中的二进制输出,一般可以用作要简单下载的功能

[csharp] view plain copy

  1. public ActionResult File()
  2. {
  3. string fileName = "~/Content/test.zip"; // 文件名
  4. string downFileName = "文件显示名称.zip"; // 要在下载框显示的文件名
  5. return File(fileName, "application/octet-stream", downFileName);
  6. }

直接下载test.zip后保存到本地则为"文件显示名称.zip"
7、 返回Null或者Void数据类型的EmptyResult

[csharp] view plain copy

  1. public ActionResult Empty()
  2. {
  3. return null;
  4. }

返回NULL
8、重定向方法:Redirect / RedirectToAction / RedirectToRoute

Redirect:直接转到指定的url地址

[csharp] view plain copy

  1. public ActionResult Redirect()
  2. {
  3. // 直接返回指定的url地址
  4. return Redirect("http://www.baidu.com");
  5. }

RedirectToAction:直接使用 Action Name 进行跳转,也可以加上ControllerName

[csharp] view plain copy

  1. public ActionResult RedirectResult()
  2. {
  3. return RedirectToAction("Index", "Home", new { id = "100", name = "liu" });
  4. }

也可以带上参数
RedirectToRoute:指定路由进行跳转

[csharp] view plain copy

  1. public ActionResult RedirectRouteResult()
  2. {
  3. return RedirectToRoute("Default", new { controller = "Home", action = "Index"});
  4. }

Default为global.asax.cs中定义的路由名称

时间: 2024-12-26 17:31:01

Asp.net MVC 中Controller返回值类型ActionResult的相关文章

ASP.NET MVC中Controller返回值类型ActionResult

1.返回ViewResult视图结果,将视图呈现给网页 public class TestController : Controller { //必须存在Controller\Test\Index.cshtml文件 public ActionResult Index() { return View(); } } 2. 返回PartialViewResult部分视图结果,主要用于返回部分视图内容 //在View/Shared目录下创建ViewUserControl.cshtml部分视图 publi

Controller返回值类型ActionResult

在mvc中所有的controller类都必须使用"Controller"后缀来命名并且对Action也有一定的要求: 必须是一个public方法 必须是实例方法 没有标志NonActionAttribute特性的(NoAction) 不能被重载 必须返回ActionResult类型 下面列举Asp.net MVC中Controller中的ActionResult返回类型1.返回ViewResult视图结果,将视图呈现给网页 public ActionResult About() { r

ASP.NET MVC – 关于Action返回结果类型的事儿(上)

原文:ASP.NET MVC – 关于Action返回结果类型的事儿(上) 本文转自:博客园-文超的技术博客 一.         ASP.NET MVC 1.0 Result 几何? Action的返回值类型到底有几个?咱们来数数看. ASP.NET MVC 1.0 目前一共提供了以下十几种Action返回结果类型: 1.       ActionResult(base) 2.       ContentResult 3.       EmptyResult 4.       HttpUnau

Asp.net mvc中Controller的返回值

其他资料:https://blog.csdn.net/zgscwxd/article/details/97518190 1)EmptyResult:当用户有误操作或者是图片防盗链的时候,这个EmptyResult就可以派上用场,返回它可以让用户啥也看不到内容,通过访问浏览器端的源代码,发现是一个空内容: public ActionResult EmptyResult() { //空结果当然是空白了! //至于你信不信, 我反正信了 return new EmptyResult(); } (2)C

(四)ASP.NET MVC 中 Controller 给 View 传递数据的方式

1. ViewData: 以 ViewData["keyname"] = value 这样键值对的方式进行数据传送.在对应的 cshtml 中用 @ViewData["keyname"] 来获取值. 2. ViewBag: ViewBag 是 dynamic 类型的,是对 ViewData 的一人动态类型封装,用起来更方便,和 ViewData 共同操作一个数据 .在 Controller 中使用 ViewBag.keyname=value 来赋值,在 cshtml

Asp.net MVC中 Controller 与 View之间的数据传递

在ASP.NET MVC中,经常会在Controller与View之间传递数据 1.Controller向View中传递数据 (1)使用ViewData["user"] (2)使用ViewBag.user (3)使用TempData["user"] (4)使用Model(强类型) 区别: (1)ViewData与TempData方式是弱类型的方式传递数据,而使用Model传递数据是强类型的方式. (2)ViewData与TempData是完全不同的数据类型,View

ASP.NET MVC中Controller与View之间的数据传递总结

在ASP.NET MVC中,经常会在Controller与View之间传递数据,因此,熟练.灵活的掌握这两层之间的数据传递方法就非常重要.本文从两个方面进行探讨: Ø Controller向View传递数据 Ø View向Controller传递数据 一.Controller向View传递数据 1.       使用ViewData传递数据 我们在Controller中定义如下: ViewData[“Message”] = “Hello word!”; 然后在View中读取Controller中

ASP.NET MVC中Controller与View之间的数据传递

一.Controller向View传递数据 Controller向View传递数据有3种形式: 1.通过ViewData传递 在Controller里面定义ViewData,并且赋值,比如 ViewData["contact"] = contact; 然后在View里面读取Controller中定义的ViewData数据 比如联系人: <input type="text" value='<%=ViewData["contact"] %

Spring MVC方法的返回值类型

一,String类型作为返回值类型 返回值类型为String时,一般用于返回视图名称 1.当方法返回值为Null时,默认将请求路径当做视图 /jsp/thread/secondRequest.jsp 如果说没有试图解析器,如果返回值为Null携带数据只能用JSON 2.当方法返回一个String的字符串时,当字符串为逻辑视图名时只返回视图,如果要携带数据则使用request,session或者Json 如果要用Model或者ModelMap传递数据,那么Model或者ModelMap绝对是方法入