asp.net Core Actions

发布时间 2023-07-20 10:43:43作者: 小溪_1

Action方法是在Controllers中定义公共方法使用路由规则将客户端的请求和action方法做映射

Action
public IActionResult NameOfAction()
{
	return View();

}

这个方法返回一个IActionResult并且方法名称为NameOfAction,action方法返回类型可以是像C#函数中的任意类型,IActionResult,ActionResult,JsonResult,string,StatusCodeResult等类型。

1. Action将Model传递给View
Models包含C#数据类型像string,int,float等
Models包含C#类,像Employee.cs,Person.cs等
2.ViewResult对象
方法 描述
View() 使用默认视图来渲染,例如:如果一个action方式List并且使用没有参数View()方法,List.chtml视图被呈现。
View("name_of_view") 这个版本在参数中传递一个视图名称并且呈现该视图,例如:如果你使用View("Show"),然而你Show.chtml将被呈现
View(model) 这个版本给默认视图提供model数据,这个通常被使用在View中呈现强类型
View("name_of_view",model) 指定一个视图名称并且给指定视图提供model数据
3.将数据从Action传递到View
  • ViewBag
    ViewBag是个Dynamic对象,允许你自定义属性,ViewBag的值被传输到视图并展示在UI上
    ViewBag.CurrentDateTime=DateTime.Now
    注意
    - ViewBag是一种轻量化方式从Controllers到Views传输数据。
    - ViewBag只能传输数据从action到view,如果在action方法中发生跳转,ViewBag数据就会丢失
    - 可以包含原始类型或者复杂类型对象
    - 每次ViewBag值读取之后,dotnet会从内存中移除,如果想要重复使用这些数据,必须将它们存在变量中。
  • TempData
    -在跳转过程不会丢失,与ViewBag一样,读取TempData的值后立即自动删除这些值。
  • Session Variable
    Session存储的数据可以在同一个客户端不同的请求中共享
    首先需要启用Session
启用Session服务
			builder.Services.AddSession()
			builder.Services.AddSingletopm<IHttpContextAccessor,HttpContextAccesstor>()
			app.UseSession()
4.Action方法调转方式
  • Redirect
    返回一个RedirectResult类。使用跳转url字符串参数,临时跳转
  • RedirectPermanent
    永久跳转,url字符串参数
  • RedirectToRoute
    执行一个临时跳转并使用匿名类型作为参数,匿名类型的参数传递到路由系统来生成url.
  • RedirectToRoutePermanent
    永久跳转 匿名类型的参数
  • RedirectToAction
    临时跳转到给与的action方法,这个方法返回一个RedirectToActionResult的一个实例。
  • RedirectToActionPermanent
    永久跳转。
5.Action方法返回不同类型的Content
  • 返回Json
    使用Json()方法可以从Action方法返回JsonResult类。

  • Action返回BadRequest(400),Unauthorized(401),NotFound(404)状态码