• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

[转]Asp.netMVC中Controller返回值类型ActionResult

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文转自:http://blog.csdn.net/pasic/article/details/7110134

  • 必须是一个public方法
  • 必须是实例方法
  • 没有标志NonActionAttribute特性的(NoAction)
  • 不能被重载
  • 必须返回ActionResult类型
  • 如:
    1. publicclass MyController : Controller 
    2.    // 必须返回ActionResult类型  
    3.     public ActionResult HelloWorld() 
    4.     { 
    5.         ViewData["Message"] = "Hello World!"
    6.         return View(); 
    7.     } 
    public class MyController : Controller
    {
       // 必须返回ActionResult类型
        public ActionResult HelloWorld()
        {
            ViewData["Message"] = "Hello World!";
            return View();
        }
    }
    下面列举Asp.net MVC中Controller中的ActionResult返回类型 1、返回ViewResult视图结果,将视图呈现给网页
    1. public ActionResult About() 
    2.     return View(); // 参数可以返回model对象  
        public ActionResult About()
         {
            return View(); // 参数可以返回model对象
         }
    2、 返回PartialViewResult部分视图结果,主要用于返回部分视图内容在View/Shared目录下创建ViewUserControl.cshtml部分视图 
    1. public ActionResult UserControl() 
    2.      ViewBag.Message = "部分视图"
    3.      return PartialView("ViewUserControl"); 
           public ActionResult UserControl()
            {
                ViewBag.Message = "部分视图";
                return PartialView("ViewUserControl");
            }
           页面调用@ViewBag.Message 将输出“部分视图” 3、 返回ContentResult用户定义的内容类型
    1. public ActionResult Content() 
    2.    return Content("Test Content", "text/html"); // 可以指定文本类型  
            public ActionResult Content()
            {
               return Content("Test Content", "text/html"); // 可以指定文本类型
            }
    页面输出“Test Content”;此类型多用于在ajax操作中需要返回的文本内容 4、 返回JsonResult序列化的Json对象      
    1. public ActionResult Json() 
    2.      Dictionary<string, object> dic = new Dictionary<string, object>(); 
    3.      dic.Add("id", 100); 
    4.      dic.Add("name", "hello"); 
    5.      return Json(dic, JsonRequestBehavior.AllowGet); 
           public ActionResult Json()
            {
                Dictionary<string, object> dic = new Dictionary<string, object>();
                dic.Add("id", 100);
                dic.Add("name", "hello");
                return Json(dic, JsonRequestBehavior.AllowGet);
            }
    主要用于返回json格式对象,可以用ajax操作;注意:需要设置参数,JsonRequestBehavior.AllowGet,否则会提示错误:此请求已被阻止,因为当用在 GET 请求中时,会将敏感信息透漏给第三方网站。若要允许 GET 请求,请将 JsonRequestBehavior 设置为 AllowGet。 5、返回JavaScriptResult可在客户端执行的脚本
    1. public ActionResult JavaScript() 
    2.     string str = string.Format("alter('{0}');", "弹出窗口"); 
    3.     return JavaScript(str); 
            public ActionResult JavaScript()
            {
                string str = string.Format("alter('{0}');", "弹出窗口");
                return JavaScript(str);
            }
    但这里并不会直接响应弹出窗口,需要用页面进行再一次调用。这个可以方便根据不同逻辑执行不同的js操作 6、返回FileResult要写入响应中的二进制输出,一般可以用作要简单下载的功能
    1. public ActionResult File() 
    2.      string fileName = "~/Content/test.zip"; // 文件名  
    3.      string downFileName = "文件显示名称.zip"; // 要在下载框显示的文件名  
    4.      return File(fileName, "application/octet-stream", downFileName); 
           public ActionResult File()
            {
                string fileName = "~/Content/test.zip"; // 文件名
                string downFileName = "文件显示名称.zip"; // 要在下载框显示的文件名
                return File(fileName, "application/octet-stream", downFileName);
            }
    直接下载test.zip后保存到本地则为"文件显示名称.zip" 7、 返回Null或者Void数据类型的EmptyResult
    1. public ActionResult Empty() 
    2.      returnnull
           public ActionResult Empty()
            {
                return null;
            }
    返回NULL 8、重定向方法:Redirect / RedirectToAction / RedirectToRoute
        Redirect:直接转到指定的url地址
    1. public ActionResult Redirect() 
    2.        { 
    3.            // 直接返回指定的url地址  
    4.            return Redirect("http://www.baidu.com"); 
    5.        }  
    	public ActionResult Redirect()
            {
                // 直接返回指定的url地址
                return Redirect("http://www.baidu.com");
            } 
        RedirectToAction:直接使用 Action Name 进行跳转,也可以加上ControllerName
    1. public ActionResult RedirectResult() 
    2.     return RedirectToAction("Index", "Home", new { id = "100", name = "liu" }); 
            public ActionResult RedirectResult()
            {
                return RedirectToAction("Index", "Home", new { id = "100", name = "liu" });
            }
    也可以带上参数RedirectToRoute:指定路由进行跳转
    1. public ActionResult RedirectRouteResult() 
    2.     return RedirectToRoute("Default", new { controller = "Home", action = "Index"}); 
            public ActionResult RedirectRouteResult()
            {
                return RedirectToRoute("Default", new { controller = "Home", action = "Index"});
            }
    Default为global.asax.cs中定义的路由名称

    鲜花

    握手

    雷人

    路过

    鸡蛋
    该文章已有0人参与评论

    请发表评论

    全部评论

    专题导读
    上一篇:
    基于DDD的现代ASP.NET开发框架--ABP系列之2、ABP入门教程发布时间:2022-07-10
    下一篇:
    如何在ASP.NETCore中应用EntityFramework发布时间:2022-07-10
    热门推荐
    热门话题
    阅读排行榜

    扫描微信二维码

    查看手机版网站

    随时了解更新最新资讯

    139-2527-9053

    在线客服(服务时间 9:00~18:00)

    在线QQ客服
    地址:深圳市南山区西丽大学城创智工业园
    电邮:jeky_zhao#qq.com
    移动电话:139-2527-9053

    Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap