首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

ASP.NET核心2.2剃刀页为什么OnPost()可以工作,而OnPostAsync()不能?

ASP.NET Core 2.2是一种用于构建跨平台、高性能、可扩展的Web应用程序的框架。在ASP.NET Core 2.2中,剃刀页(Razor Pages)是一种用于开发Web页面的模型-视图-控制器(MVC)模式。

在剃刀页中,OnPost()和OnPostAsync()是用于处理HTTP POST请求的方法。它们的区别在于它们的异步性质和返回类型。

OnPost()是同步方法,它会在请求被处理完成之前一直阻塞线程。这种同步的特性使得OnPost()可以在请求处理完毕之前等待并获取相关数据。因此,当在OnPost()方法中执行耗时操作时,页面将一直处于加载状态,直到操作完成为止。

而OnPostAsync()是异步方法,它允许请求处理线程在等待操作完成时继续执行其他任务,提高了系统的并发性和响应性能。通常,异步方法更适用于处理需要等待外部资源、数据库查询或网络请求等耗时操作的场景。在OnPostAsync()方法中,可以使用async和await关键字来处理异步操作,以确保任务能够按照预期顺序执行。

为什么OnPostAsync()不能工作可能有多种原因,以下是可能的情况:

  1. 异步方法未正确声明为async Task:在定义OnPostAsync()方法时,需要使用async关键字来声明异步方法,并指定返回类型为Task。
  2. 异步方法未正确使用await关键字:在OnPostAsync()方法中,如果存在异步操作,需要使用await关键字来等待异步操作的完成。如果未正确使用await关键字,方法可能会在异步操作完成之前返回,导致无法正确执行。
  3. 异步操作的错误处理:在OnPostAsync()方法中,如果存在异常可能需要进行异常处理。如果没有正确处理异常,可能会导致方法无法正常工作。
  4. 线程同步问题:如果在OnPostAsync()方法中使用了不适合异步场景的线程同步机制,例如使用了同步锁或线程等待机制,可能会导致方法无法正常工作。

以上是一些可能导致OnPostAsync()方法无法正常工作的原因。根据具体情况,可以检查代码中的相关部分,并逐步排除可能的问题。

关于ASP.NET Core 2.2的更多信息,您可以参考腾讯云的文档和资源:

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

如何ASP.NET Core Razor中处理Ajax请求

先来给大家简单介绍下Razor Razor Pages是ASP.NET Core的一项新功能,可以使编页面的编程方案更简单,更高效。...这些类似于ASP.NET MVC或WEB API的Action方法。Razor Pages遵循特定的命名约定,Handler方法也是如此。...他们也遵循特定的命名约定,并与“On”前缀:和HTTP动词一样OnGet(),OnPost()等处理方法也有异步版本:OnGetAsync(),OnPostAsync()等。...至于为什么是LoginIn不是OnPostLoginInAsync,在文章开头也提到过,这是Rozar的语法限定,不清楚的朋友可以去看下微软的官方文档,写的肯定比我好。。...有两种方法可以添加AntiForgeryToken。 在ASP.NET Core MVC 2.0中,FormTagHelper为HTML表单元素注入反伪造令牌。

1.9K90

.NET Core 学习资料精选:入门

NET Core 过时的运行时和 SDK [坑]安装 .Net Core 2.2 SDK后,VS2017依然不能设置core2.2为目标框架 基础 ASP.NET Core开发者路线指南 微软官方 asp.net...,和依赖注入: 控制反转的意思就是:平常我们需要一个类对象的时候需要new出来,现在我们把new一个类对象的工作交给了IOC容器,当我们需要一个类对象的时候直接向IOC容器要,就可以了,这个就是控制反转...(可以使用autofac或者其他来实现属性注入) ASP.NET Core 中依赖注入的N种玩法 ASP.NET Core 自定义特性实现属性注入 ASP.NET Core 原生DI实现批量注册 可以参考...新的 Razor 机制 ASP.NET Core Razor SDK ASP.NET Core 的 Razor 语法参考 ASP.NET Core 中的 Razor 页面介绍(OnGet、OnPost...、单多Handler方式) ASP.NET Core 中 Razor 页面的IPageFilter ASP.NET Core 中 Razor 页面的路由和应用约定 ASP.NET Core Razor

3.8K20
  • Do You Kown Asp.Net Core -- Asp.Net Core 2.0 未来web开发新趋势 Razor Page

    当我们业务模块划分越多的时候,你是否会为你的Model创建头疼呢?...跟之前mvc不同的是,我们不再看到model,view,controller目录了,取而代之的是Pages目录,这个就是我们的razor Page的主要工作目录。...’/’访问也可以通过’/Home/’ 访问,这其实有歧义的,为了避免这种情况,我们必须去修改Route,非常不方便,现在,我们只需要在Pages主目录下创建相应的Action就可以了,微软提供了Razor...比如当你创建一个用户的时候,你会希望跳转回用户列表,并在用户列表提示添加成功的信息,这时候你可以通过在Message属性上加上[TempData]特性,引用下微软Docs的例子: public class...OnGetAsync不能在同一个PageModel中 A:可以通过自己重写IPageHandlerMethodSelector接口,然后注册到service中应该可以解决。

    2K60

    奥卡姆剃刀 - 如无必要,勿增实体

    ,同样可以做好的事情。”...你说为什么地球绕太阳一周的时间,每一年都是一样的?对此有下面两个解释 — 这是上帝的安排。上帝希望人的生活有固定节奏,所以安排每一年的长度都一样。...2、在生活上,面对复杂的问题,通过奥卡姆剃刀,剃掉无关紧要的东西,就能找到更简单的解决方案。 比如出门在外“如何避免受骗”,一种方法是做加法,识别各种骗术,买一本厚厚的500多的《常见街头骗术》。...4、在工作中,只做少量但必要的事情。过多的目标,只会让人精力分散。 通过重要紧急两个维度来看自己的工作,把时间大部分都花在重要紧急和重要不紧急的事情上。我们的时间就够用了。...回顾下自己工作也会发现其实做了很多无用功。不要为做做。做事的时候想清楚关键点。太多的目标,只会让人精力分散。如果自己没办法选择工作内容,也可以找上级一起确定优先级。

    34220

    ASP.NET Core托管和部署Linux实操演练手册

    作为.NET程序员大多数工作无法脱离Windows,习惯于图形化的工作环境,特别对刚接触Linux系统来说感觉使用很不习惯, 所谓工欲善其事,必先利其器,毕竟我们程序员的精力是有限的 ,把有限的时间投入到有价值的事情上去...1.1、本次分享课程包含知识点如下: 1、为什么asp.net不能跨平台,asp.net core可以跨平台?...上安装Nginx 8、使用IIS 在 Windows 上托管 ASP.NET Core 9、使用Nginx 在 Linux 上托管 ASP.NET Core 如果您对本次分享课程《ASP.NET...微软高调示爱Linux 二、概念名称含义解释 2.1、为什么asp.net不能跨平台,asp.net core可以跨平台?...2.2asp.net core web服务器HTTP.sys和Kestrel以及特点 2.3、asp.net core两种托管模型以及如何选择 1)、Inprocess(进程内托管) 2)、Outofprocess

    90920

    ASP.NET 5系列教程 (一):领读新特性

    以上概括性的介绍了ASP.NET 5的新特性和增强功能。 本篇文章中我们将重点阐述以下几点: 为什么重新设计 ASP.NET ?...开源 提供敏捷的开发环境 关于Web Forms 早期版本Framework开发应用兼容性 为什么重新设计 ASP.NET?...微软在 ASP.NET 5中改善了以上问题。在使用核心CLR前提下,你可以在部署包内定义依赖关系,所以你可以为每个应用程序指定.NET版本。 旧版应用可以平滑运行,同时你也可以使用新版本开发应用。...合并MVC, Web API 和Web 早期版本中, MVC、Web API 和Web 一直在使用着不同的方式实现着相同的功能,可以说是殊途同归。...微软提供 API Portability Analyzer 工具可以判断当前应用是否可以使用核心CRL。这个工具还可以分析当前应用可以运行在哪些平台,以及哪些因素阻止其不能在特定平台上运行。

    3.2K80

    七天学会ASP.NET MVC (一)——深入理解ASP.NET MVC

    (六)——线程问题、异常处理、自定义URL 七天学会ASP.NET MVC(七)——创建单应用 ASP.NET vs MVC vs WebForms 许多ASP.NET开发人员开始接触MVC认为MVC...与ASP.NET完全没有关系,是一个全新的Web开发,事实上ASP.NET是创建WEB应用的框架MVC是能够用更好的方法来组织并管理代码的一种更高级架构体系,所以可以称之为ASP.NET MVC。...响应时间 我们可以理解为什么ASP.NET Webform比较慢,如图我们做了一些小的加载测试。...我们是否为了获取如此简单的HTML长时间的消耗服务器 2. 开发人员是否可以直接编写HTML?很难实现吗? 通过分析我们可以得知,每一次请求都有转换逻辑,运行并转换服务器控件为HTML输出。...可以ASP.NET MVC的view和Controller不是严格的匹配的,一个Action Method可以引用多个view,一个View也可以被一个Action方法使用如下代码所示: 1:

    3.1K60

    机器学习中的“哲学”

    未必,我们必须要加深对于问题的理解,不能盲目的说某一个算法可以包打天下。然而,从另一个角度说,我们对于要解决的问题往往不是一无所知,因此大部分情况下我们的确知道什么算法可以得到较好的结果。...从某种意义上说,神经网络也是一种集成学习,有兴趣小伙伴可以想想为什么… 相信敏锐的读者已经发现,集成学习似乎和前面提到的奥卡姆剃刀定理相违背。明明一个分类模型就够麻烦了,现在为什么要做更多?...这其实说到了一个很重要观点,就是奥卡姆剃刀定理并非不可辩驳的真理,只是一种选择方法。 从事科学研究,切勿相信有普遍真理。周孝正教授曾说:”若一件事情不能证实,也不能证伪,就要存疑。”...恰巧,奥卡姆定理就是这样一种不能证实也不能证伪的定理。 集成学习的精髓在于假设“子分类器”的错误相互独立,随着集成中子分类器的数目上升,集成学习后的”母分类器”的误差将会以指数级别下降,直至为0。...事实上,如何产生并结合好不同个体学习器,恰是集合学习的研究核心。” 而为什么集成学习有效,就不得不提Bias-Variance Tradeoff。

    1K90

    微软发布ASP.NET Core 2.2,先睹为快。

    可以从.NET Core 2.2下载页面下载适用于您的开发机器和构建服务器的新.NET Core SDK(2.2.100)。...新特性 此ASP.NET Core版本的主旨是在构建Web / HTTP API方面提高开发人员的工作效率和平台功能,详情请参考: 与流行的Open API(Swagger)库更好地集成,包括使用代码分析器进行设计时检查...当微软宣布推出针对2.2路线图的ASP.NET核心健康检查时,BeatPulse团队移植了所有现有的活动包和功能,以便在存储库AspNetCore.Diagnostics.HealthChecks中使用新的...Azure App Service中的可用性 .NET Core 2.2 SDK,运行时和更新的ASP.NET核心IIS模块正在部署到全球的Azure App Service区域。...某些区域可能会在更新的ASP.NET核心IIS模块(ANCM)之前收到更新的运行时,对于面向ASP.NET Core 2.2的项目,默认情况下这是必需的。这也是新的进程内托管功能的要求。

    3.4K40

    .NETASP.NET Routing路由(深入解析路由系统架构原理)

    核心的对象模型Routing模块,为什么说愉快呢,因为Routing正是建立在大家都比较熟悉的ASP.NET管道模型基础之上的,所以相比其他一些陌生的概念会轻松很多,不过不要紧一回生二回熟; ASP.NET...\ASP.NETWEBAPI\自定义框架); 注意:“ASP.NET基础框架”指ASP.NET本身的框架可以理解为传统的WEBFROM;“基于ASP.NET的应用框架”是指基于ASP.NET基础框架而设计的如...:MVC\WEBPAGE\WEBAPI之类的上层轻量级应用框架; 图2.2: ?...,不过先不能急,还有些思路并不清晰,我们继续慢慢分析;按照这样的一个思路,基本上我们可以断定UrlRoutingModule就是协调ASP.NETRouting框架的纽带; 图3.1: ?...,但是核心对象要想运行起来中间必须有一些数据封装的对象为他们消除数据传递的问题;而这小节的三个核心对象真是路由系统能成功工作的必不可少的数据存放、数据传输容器的核心对象; 先基本介绍一下这几个对象的意思和彼此之间的关系

    1.6K90

    通过避免下列 10 个常见 ASP.NET 缺陷使网站平稳运行

    会话状态和内核模式输出缓存不能混合使用。如果您在启用输出缓存的中使用会话状态,并且应用程序在 IIS 6.0 上运行,则您需要关闭内核模式输出缓存。...但是这不切实际,因为登录的特点通常是包含一个“将我保持为登录状态”框,用户可以选中该框以收到永久不是临时身份验证 Cookie。...使用自定义适配器的一个缺点是它全局性地作用于应用程序中的每一。如果您更愿意将其中一些页面的视图状态保留在会话状态中不保留其他页面的视图状态,请使用图 4 中显示的方法。...• 默认情况下,ASP.NET 会话状态管理器对每个请求中的会话数据存储执行两个访问(一个读取访问和一个写入访问),不管请求的是否使用会话状态。...您知道为什么吗? 默认情况下,ASP.NET 2.0 角色管理器不会缓存角色数据。相反,它会在每次需要确定用户属于哪个角色(如果有)时参考角色数据存储。

    3.5K80

    机器学习包含哪些学习思想?

    未必,我们必须要加深对于问题的理解,不能盲目的说某一个算法可以包打天下。然而,从另一个角度说,我们对于要解决的问题往往不是一无所知,因此大部分情况下我们的确知道什么算法可以得到较好的结果。...明明一个分类模型就够麻烦了,现在为什么要做更多?这其实说到了一个很重要观点,就是奥卡姆剃刀定理并非不可辩驳的真理,只是一种选择方法。从事科学研究,切勿相信有普遍真理。...人大的周孝正教授曾说:"若一件事情不能证实,也不能证伪,就要存疑。" 恰巧,奥卡姆定理就是这样一种不能证实也不能证伪的定理。...事实上,如何产生并结合好不同个体学习器,恰是集合学习的研究核心。" 4....贝叶斯学派相信参数不是固定的,我们需要发生过的事情来推测参数,这也是为什么总和先验(Prior)及后验(Posterior)过不去,才有了最大后验(Maximum a Posteriori)即MAP。

    68430

    NopCommerce 4.2的安装与运行

    NopCommerce是国外ASP.Net领域一个高质量的B2C开源电商项目,最新版本4.2基于ASP.NET Core MVC 2.2和EF Core 2.2开发,其强大的功能特性和插件机制使其成为了...三、运行NopCommerce 3.1 编译代码   打开NopCommerce.sln解决方案,可以看到如下图所示的代码结构: ?   整个项目代码由4个部分组成,核心库、插件库、展示层以及测试。...先了解这么多,先编译代码吧,肯定是没有Error的,除非你没有安装.NET Core 2.2的SDK。...Passw0rd>' \    -p 1433:1433 --name edc-mssql-dbms \    -d microsoft/mssql-server-linux   准备工作完成后,点击“...除了前端我们常见的商城页面,更强大的是后台系统,通过在默认URL后边跟上Admin,例如:http://localhost:8080/Admin 则会跳转至后台登录,输入我们在首次配置时配置的邮箱和密码

    3K30

    ASP.NET MVC 4, ASP.NET Web API 和ASP.NET Web Pages v2(Razor)现在都是开源了

    可以在CodePlex 上查找源。请务必阅读ScottGu 的博客中的详细信息。 耶, 我加粗、 加下划线和斜体的最后部分,是的,这是无偿的。;) 这是在我们组织中的许多人艰辛工作的结果。...这仍然是一个路线图,其实,现在有比以往任何时候都多的微软开发人员在致力于ASP.NET。 你们为什么这样做? 我们为什么不应该这样做?我们喜欢开源,你们也是。...我们很多人都有开放源代码的背景,我们很多人在空余时间工作于开源代码。我们认为我们的产品是很棒的,通过转移到开放的开发模型,我们认为更多的人将振奋,激动,并帮助使产品和社区更强大。...这个时候成为开源的组件是核心.NET框架推出的独立组件,这意味着操作系统组件不依赖它们。Web Form是System.Web.dll 的一部分,Windows Server平台依赖此dll。...由于此依赖的关系,此代码不能轻易地用新的版本替换,只有期望更新.NET 框架或操作系统。 Mono呢? Web 团队深入到了Mono。

    1.6K60

    IIS 7.0探索用于 Windows Vista 的 Web 服务器和更多内容

    因此,只有向 ASP.NET 注册的内容类型才能受益于这些服务。包括 ASP 、PHP 、图像和 CGI 应用程序在内的其他类型则无法受益。...此外,由于运行库限制,即使对于 ASP.NET 资源,也无法在 ASP.NET 中实现某些 Web 服务器功能。例如,它不能检查传出 HTTP 响应标头集并在发送到客户端之前修改它们。...通常,现有应用程序可以利用集成模式,不需要使用特定于集成模式的功能的新 ASP.NET 模块。...像以前一样,还可以为不同的错误代码配置自定义错误,或重定向到自定义 URL。详细的错误现在也已本地化,如果安装了相应语言的语言包,就可以按客户端的首选语言提供错误描述。...通过将动态内容进行输出缓存,无论它是 ASP.NET 、PHP 脚本还是 CGI 应用程序,您都可以获得 5-10 倍的性能提升,同时大大降低对磁盘和数据库的负载。

    5.1K90

    Python语言学习:面向对象编程,类和对象,封装、继承和多态

    01面向对象编OOP 1.1 为什么学习和应用OOP? 1 OOP适合更加复杂的需求分析和项目开发。 2 OOP具有更强大的封装能力。...4 OOP可以提升我数据科学工作的效率。 1.2 什么是OOP? OOP全称是(Object Oriented Programming),面向对象编程,一种编程思维和方式。...面对需求分析时,OPP会思考怎么做这个需求,OOP会思考谁来做这个需求,并且进一步思考这个谁需要具备什么特征和行为,即这个谁的属性和方法。通过OOP,可以把这个谁的属性和方法封装在一起,做成一个类。...02类和对象 2.1 概念描述 类和对象是OOP的两个核心概念。 类是抽象,不能直接使用,它是对一群具有相同特征或者行为的事物的一个统称。...当父类的方法实现不能满足子类需求时,可以对父类方法进行重写(一种是覆盖父类的方法,另一种是对父类方法功能进行扩展,需要的位置使用super().父类方法) 子类对象不能直接访问父类的私有属性和方法(一种隐私保护技术

    54720

    学完这篇依赖注入,与面试官扯皮就没有问题了。

    一个完整精密的软件系统,组件之间就像齿轮,协同工作,相互耦合。 一个零件不正常,整个系统就崩溃了。 系统对象之间耦合关系无法避免,在项目规模和复杂度变大的情况下,管理类之间的依赖关系将会很复杂。...对象之间耦合度很高的系统,架构师和开发人员对于系统的修改,必然会出现牵一发动全身的情形。 对象之间耦合性依赖,单元测试很复杂。...再来看看,控制反转(IOC)到底为什么要起这么个名字?...3.源码导航 利用反射产生对象是依赖注入的核心过程,这也是面试造航母时经常问到的。...实际上,我们可以在依赖树的尾部对象的构造函数手动抛出异常,异常的调用栈就是一个天然的源码导航。

    1.3K31

    .Net Framework 各版本区别

    内置支持移动ASP.NET。 以前只是作为.NET框架的一个附加组件,现在是框架的一部分 。 3....许多新增和改进的ASP.NET Web控件 。 7. 新的数据控件包括声明性数据绑定 。 8. 新增ASP.NET个性化功能,如对主题、皮肤、母版和WebParts 的支持。...内置支持移动ASP.NET。 以前只是作为.NET框架的一个附加组件,现在是框架的一部分 。 3....许多新增和改进的ASP.NET Web控件 。 7. 新的数据控件包括声明性数据绑定 。 8. 新增ASP.NET个性化功能,如对主题、皮肤、母版和WebParts 的支持。...许多新增和改进的ASP.NET Web控件 。 7. 新的数据控件包括声明性数据绑定 。 8. 新增ASP.NET个性化功能,如对主题、皮肤、母版和WebParts 的支持。

    3K10
    领券