【发布时间】:2020-08-27 19:15:00
【问题描述】:
我有一个 DLL,其中包含用于获取报告的异步方法。它完成了所有繁重的工作,包括 HTML 格式。
namespace MyReportEngine
{
public class Renderer
{
static public async Task<string> GetReportHtml()
{
//Magic (not important)
}
}
}
我想创建一个网站而不做很多工作。我要做的就是创建一个使用 DLL 的简单 ASPX 文件。我试过这个:
<%@ Assembly Name="MyAssembly" %>
<%@ Import Namespace="MyAssembly.MyReportEngine" %>
<%@ Page Async="true" %>
<html>
<body>
<% =await Renderer.GetReportHtml() %>
</body>
</html>
这会导致 JIT 编译期间出现运行时异常:
Compiler Error Message: BC36937: 'Await' can only be used when contained within a method or lambda expression marked with the 'Async' modifier.
我已经查看了 this one 之类的文档和教程,但它们似乎只处理向代码隐藏添加异步调用。没有关于如何从 ASPX 标记本身进行调用的信息。有可能吗?
【问题讨论】:
-
您是否尝试启动页面然后动态加载内容?您可能需要对其中的内容进行 AJAX。
-
不,我不想让页面启动然后动态加载内容。我正在尝试将页面完全呈现在服务器端。
-
好的。比这是记录在案的东西:docs.microsoft.com/en-us/aspnet/web-forms/overview/…
标签: c# asp.net async-await webforms