0

如果我的 ASP.NET 网络表单页面中有一些内联代码(在 .NET 4.5 中),例如

<li>
   <% =ListItemWithPrice("Widget")%> 
</li>

我想做ListItemWithPrice异步,是否可以在页面上等待它?我知道我可以使用

<li>
   <% =ListItemWithPrice("Widget").Result%> 
</li>

但这只会在等待任务完成时阻塞,这实际上没有任何帮助(甚至可能更糟)。理想情况下,我想使用

<li>
   <% =await ListItemWithPrice("Widget")%> 
</li>

但这似乎不起作用。

4

2 回答 2

1

您不能在 Page 中包含内联 await 语句,但您可以使用 Page.RegisterAsyncTask 从代码隐藏中执行此操作。有关示例,请参见http://www.asp.net/web-forms/tutorials/aspnet-45/using-asynchronous-methods-in-aspnet-45 。

于 2013-02-13T20:31:42.530 回答
0

简短的回答是否定的, await 不能以这种方式使用。如果 await 关键字会生成一个 ajax 请求和相应的回调函数以在请求完成时调用,这将起作用。

于 2013-02-13T11:08:23.303 回答