Castle MonoRail异步动作

时间:2012-10-24 12:37:17

标签: asynchronous action castle-monorail

我想在MonoRail基础控制器中进行异步操作。

我阅读了有关异步操作的文档 http://docs.castleproject.org/Default.aspx?Page=Controllers&NS=MonoRail&AspxAutoDetectCookieSupport=1#Asynchronous_Actions_1

所以这就是我所做的:

public IAsyncResult BeginUploadTags(HttpPostedFile xmlFile, Boolean doUpload)
{
  if(IsPost)
  {
            IAsyncResult iAsyncResult = new AsyncDelegate(upload).BeginInvoke(queryResult, doUpload, ControllerContext.Async.Callback, ControllerContext.Async.State);
            return iAsyncResult;
   }
   // TODO
   // if IsPost is false do nothing but return a IAsyncResult object
}

public void EndUploadTags()
{

}

private delegate void AsyncDelegate(List<String> queryResult, Boolean doUpload);
private void upload(List<String> queryResult, Boolean doUpload)
{
   // do upload stuff
}

但是当IsPost为假时我需要做什么?

1 个答案:

答案 0 :(得分:0)

您需要返回已完成的IAsyncResult(具有null AsyncResult值)。

您可以创建与this SO question

类似的完整结果