WorkFlow 4 (WF 4)의 초보자이며 MVC 3에서 사용하는 심각한 문제를 통해 실행 중이며 온라인에서 답을 찾을 수 없습니다.컨트롤러에서 WorkFlow 4를 완료 한 후 팝업 메시지 표시
workFlow에서 예외가 발생했거나 outpput 인수에서 반환 된 것이 있으면 사용자가 편집 할 페이지가 있고 마지막에 저장 버튼을 클릭한다는 팝업 메시지를 표시해야합니다.
저장 버튼을 클릭하면 컨트롤러에 양식을 제출하고 워크 플로를 실행하고 워크 플로가 완료되면 워크 플로를 통해 데이터를 업데이트했는지 여부를 설명하는 출력을 얻은 다음 완료된 상태에서이 상태를 표시해야합니다 액션이지만, 비동기식으로 실행하기 때문에 메소드가 사용자에게 반환되고 워크 플로우가 이벤트를 호출한다는 의미에서 실행할 수 없습니다.
[HttpPost()]
public ActionResult SaveVehicles(vehiclesData model) {
Services.VehiclesDataUpdate vehiclesDataUpdate = new Services.VehiclesDataUpdate(this.SessionData.DealerLotKey, null, null);
IDictionary<string, object> parameters = new Dictionary<string, object>();
parameters.Add("VehiclesDataUpdate", vehiclesDataUpdate);
parameters.Add("UnionVehicles", unionVehicles);
parameters.Add("SolrVehicles", solrVehicles);
IDictionary<string, object> outputs = new Dictionary<string, object>();
AutoResetEvent syncEvent = new AutoResetEvent(false);
WorkflowApplication wfApp = new WorkflowApplication(new VehiclesUpdate(), parameters);
wfApp.Completed = delegate(WorkflowApplicationCompletedEventArgs e) {
outputs = e.Outputs;
syncEvent.Set();
if (!errorExceptions.IsNullOrEmpty()) {
//TODO: Render a parital view to display an error message or the result of the workflow in the ouptput
//TODO: Logging.
}
};
wfApp.Aborted = delegate(WorkflowApplicationAbortedEventArgs e) {
syncEvent.Set();
};
wfApp.Run();
return View(model);
}
가 어떻게 사용자 워크 플로우 완료로 다시 뭔가를 보낼 수 있습니다 : 여기
컨트롤러에 내 코드?
미리 감사드립니다.
[WorkflowInvoker] (http://msdn.microsoft.com/en-us/library/system.activities.workflowinvoker.aspx) 또는 [ManualResetEvent] (http://msdn.microsoft.com/en-us/library/system.aspx) us/library/system.threading.manualresetevent.aspx) 워크 플로 응용 프로그램이 실행을 완료 한 ASP.NET 작업자 스레드에 신호를 보냅니다. – Will
예를 들어 주시겠습니까? –
여기에 많이 있습니다. [wf4]를 뒤지고 읽으십시오. ASP.NET에서 [비동기 페이지] (http://msdn.microsoft.com/en-us/magazine/cc163725.aspx)를 사용하면 더 좋은 해결책이 될 수 있다고 믿기 때문에 대답하지 않겠습니다. 문제는 적절한 답변을 제공하기 위해 내가 충분히 익숙하지 않은 곳이 없다는 것입니다. – Will