找回密码
 立即注册
快捷导航

[.NET] Action、Action返回类型、响应、重定向 整理

[复制链接]
妙笔生花 2023-10-17 23:33:22 | 显示全部楼层
本帖最后由 妙笔生花 于 2023-10-17 23:44 编辑
public ObjectResult Details()
{
    return new ObjectResult(model);
}

public ViewResult Details()
{
    ...
    return View(model);
}

public IActionResult Index()
{    
    return View();  // 等同下
    return View("Index");  // 等同下
    return View("Views/Home/Index.cshtml");  // 等同下
    return View("/Views/Home/Index.cshtml");  // 等同下
    return View("~/Views/Home/Index.cshtml");  // 等同下
    return View("../Home/Index");  // 等同上

    return View(model);
    return View("Index", model);

    return Ok("111");   // 200
    return Content("1111");   // 200
    return BadRequest();   // 400
    return NotFound();    // 404
    return Conflict();    // 409 表示请求的操作与当前资源冲突,一般用于更新(PUT和PATCH)
    return Forbid();    // 500
    return Unauthorized();    // 401
    return UnprocessableEntity();    // 422
    return Accepted();    // 202
}

public ActionResult<Student> Details()
{
    return new { id=1, name= "zhangsan"};
}

public JsonResult Details2()
{
    return new JsonResult(new { id=1, name= "zhangsan"});
}

作为Action的返回值类型:

  • ContentResult:用于返回字符串内容的结果。
  • FileResult:用于返回文件内容的结果。
  • StatusCodeResult:用于返回指定状态码的结果。
  • EmptyResult:用于表示没有任何结果需要返回的情况。
  • PartialViewResult:用于返回局部视图的结果。
  • RedirectResult:用于执行重定向操作的结果。
  • BadRequestResult:用于返回400 Bad Request状态码的结果。
  • NotFoundResult:用于返回404 Not Found状态码的结果。
  • UnauthorizedResult:用于返回401 Unauthorized状态码的结果。
  • ForbidResult:用于返回403 Forbidden状态码的结果。

重定向

public IActionResult Index()
{
    return LocalRedirect("/Home/details");    // 请求重定向到本地URL    // 302 临时重定向
    return LocalRedirectPermanent("/Home/details");    // // 301 永久重定向

    return Redirect("https://www.baidu.com");    // 302 临时重定向

    return RedirectToAction("Details2");    // 302 临时重定向
    return RedirectToAction("Details", "Home");
    return RedirectToAction("details3", "Home", new {name = "laoliu"});    // 302 /Home/tails3?name=laoliu
    return RedirectToAction("details2", "Home", "sss");   //302 /Home/details2#sss 

    return RedirectPermanent("https://www.so.com");  // 301 永久重定向
    return RedirectToActionPermanent("Details");     // 永久,改变地址
    return RedirectToActionPermanent("Details2", "Home");

    return RedirectToRoute("ppp");    // 302 临时重定向, 需要配合:

    return new RedirectToRouteResult("ppp");  // ???

    return CreatedAtRoute("GetResource", new { id = resourceId }, createdResource);  // ???
    return CreatedAtAction("GetResource", new { id = resourceId }, createdResource);  // ???
    return new CreatedResult("/mycontroller/myaction", createdResource);  // ???
}

[Route("[action]", Name = "ppp")]
public JsonResult Details4() { 
    return new JsonResult(new { id = 2 });
}
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

温馨提示

关于 注册码 问题

      由于近期经常大量注册机器人注册发送大量广告,本站开启免费入群领取注册码注册网站账号,注册码在群公告上贴着...

关于 注册码 问题

      由于近期经常大量注册机器人注册发送大量广告,本站开启免费入群领取注册码注册网站账号,注册码在群公告上贴着...

Archiver|手机版|小黑屋|DLSite

GMT+8, 2024-11-23 01:03

Powered by Discuz! X3.5 and PHP8

快速回复 返回顶部 返回列表