首页 > 编程语言 >asp.net Core Actions

asp.net Core Actions

时间:2023-07-20 10:44:30浏览次数:35  
标签:Core asp ViewBag 视图 跳转 Action net 方法 View

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)状态码

标签:Core,asp,ViewBag,视图,跳转,Action,net,方法,View
From: https://www.cnblogs.com/xiaoxi888/p/17567605.html

相关文章

  • .NET HttpClient 关于 Send 问题
           一个数据采集项目中,使用HttpClient 携带COOKIE对被采集的系统调用API的方式进行数据请求,使用HttpClient 过程中发现,通过HttpClient 中Send方式进行数据请求时”JSESSIONID“缺失!      HttpClient初始化:1#region初......
  • 基于 KubeKey 扩容 Kubernetes v1.24 Worker 节点实战
    前言知识点定级:入门级KubeKey扩容Worker节点openEuler操作系统的基本配置Kubernets基本命令实战服务器配置(架构1:1复刻小规模生产环境,配置略有不同)主机名IPCPU内存系统盘数据盘用途ks-master-0192.168.9.912450100KubeSphere/k8s-masterks-master-1192.168.9.922450100Kub......
  • 基于 KubeKey 扩容 Kubernetes v1.24 Worker 节点实战
    前言知识点定级:入门级KubeKey扩容Worker节点openEuler操作系统的基本配置Kubernets基本命令实战服务器配置(架构1:1复刻小规模生产环境,配置略有不同)主机名IPCPU内存系统盘数据盘用途ks-master-0192.168.9.912450100KubeSphere/k8s-master......
  • Kubernetes亲和性学习笔记
    欢迎访问我的GitHub这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos本篇概览本文是欣宸在学习Kubernetes调度器的过程中,对亲和性相关知识点的整理和总结,这是一篇笔记性质的博客kubernetes默认调度器的调度过程:调度过程如下:预选(Pred......
  • .Net Core EntityFrameCore
    目录引入DBFirstMsSqlServer测试DbFirstUser表Nuget测试CodeFirstMsSqlServer保存原始数据并重新创建库备份数据在OnModelCreating增加执行codefirst迁移命令打印日志状态导航属性贪婪加载懒加载第一种方式第二种方式设置查询状态不跟踪全局设置局部设置执行时设置引入Mic......
  • Transformer取代者登场!微软、清华刚推出RetNet:成本低、速度快、性能强
    前言 Transformer的训练并行性是以低效推理为代价的:每一步的复杂度为O(N)且键值缓存受内存限制,让Transformer不适合部署。不断增长的序列长度会增加GPU内存消耗和延迟,并降低推理速度。研究者们一直在努力开发下一代架构,希望保留训练并行性和Transformer的性能,同时实现......
  • 错误连接数据库 [mysql] : org.pentaho.di.core.exception.KettleDatabaseExcepti
    错误连接数据库[mysql]:org.pentaho.di.core.exception.KettleDatabaseException是一种常见的错误,通常在使用PentahoDataIntegration(PDI)工具连接到MySQL数据库时出现。本文将介绍这个错误的原因,以及如何解决它。在使用PDI工具连接到MySQL数据库时,经常会遇到数据库连接失败的......
  • .NET 内存泄漏分析
    目的相信很多小伙伴,除了编码以外,还经常需要和服务器打交道,处理服务器警报,这些警报中最常见的问题之一就是内存泄漏,大部分时候这个问题很难通过传统的日志手段来定位,所以很多的小伙伴遇见了内存泄漏问题常常急的抓耳挠腮,一边百度(现在有了ChatGPT),一边连蒙带猜的尝试,运气好,完美定位,......
  • Visual Studio 2022 Net6.0 无法发现testcase, 也无法执行test case
         解决办法:      <PropertyGroup>                  <CopyLocalLockFileAssemblies>false</CopyLocalLockFileAssemblies>         <GenerateAssemblyInfo>false</GenerateAssemblyInfo>     ......
  • .net - 支持word上传的富文本编辑器
    ​ 1.编辑器修改(可选)1.1在 ueditor/config.json 中添加代码块    /* 上传word配置 */    "wordActionName":"wordupload",/* 执行上传视频的action名称 */    "wordFieldName":"upfile",/* 提交的视频表单名称 */    "wordPathFormat":"/p......