Difference Between ViewResult() and ActionResult()

后端 未结 8 1137
忘掉有多难
忘掉有多难 2020-11-30 16:02

What is the difference between ViewResult() and ActionResult() in ASP.NET MVC?

public ViewResult Index()
{
    return View();
}

pu         


        
8条回答
  •  囚心锁ツ
    2020-11-30 16:33

    In Controller i have specified the below code with ActionResult which is a base class that can have 11 subtypes in MVC like: ViewResult, PartialViewResult, EmptyResult, RedirectResult, RedirectToRouteResult, JsonResult, JavaScriptResult, ContentResult, FileContentResult, FileStreamResult, FilePathResult.

        public ActionResult Index()
                    {
                        if (HttpContext.Session["LoggedInUser"] == null)
                        {
                            return RedirectToAction("Login", "Home");
                        }
    
                        else
                        {
                            return View(); // returns ViewResult
                        }
    
                    }
    //More Examples
    
        [HttpPost]
        public ActionResult Index(string Name)
        {
         ViewBag.Message = "Hello";
         return Redirect("Account/Login"); //returns RedirectResult
        }
    
        [HttpPost]
        public ActionResult Index(string Name)
        {
        return RedirectToRoute("RouteName"); // returns RedirectToRouteResult
        }
    

    Likewise we can return all these 11 subtypes by using ActionResult() without specifying every subtype method explicitly. ActionResult is the best thing if you are returning different types of views.

提交回复
热议问题