我在门户页面模板中有一个自定义Webpart。单击按钮时需要调用异步Web api方法。
我知道对于基于ASPX的模板,我们将看到Page属性,如:
<%@ Page Title="" Language="C#" ...... Async="true" %>
但是我不确定是否可以使用门户网站模板进行访问。
如果不可能,我必须创建一个ASPX模板-它是否可以引用基于门户的母版页,或者我也必须将其拉到aspx页面中?
我需要此属性集的原因是支持以下代码:
protected void btnProcessPayment_Click(object sender, EventArgs e)
{
Page.RegisterAsyncTask(new PageAsyncTask(ExecuteValidation));
}
private async Task ExecuteValidation()
{
我发现这是Web表单中的可靠实现。
答案 0 :(得分:0)
尽管我不确定您是否可以将整个页面设置为“异步”,但是这里还有其他选项。
您可以使用Kentico的AsyncControl-此控件在整个管理界面中都用于异步处理
您可以使用Kentico的AsyncWorker-如果由于某些原因您无法使用 使用AsyncControl可能是有效的替代方法
答案 1 :(得分:0)
对于控件而言,异步并不能很好地适应整个Web窗体的生命周期,而回调可能会破坏周期,例如,如果加载了页面。运行工作线程或AJAX调用通常是更好的选择。甚至AsyncControl都在某个时刻附加到线程上,并利用它来完成工作并基于此更改其渲染。
只要页面上没有其他复杂控件,它就可以工作。 MVC确实会在这里提供帮助,但目前为止,这超出了Kentico 11和门户。