2016-06-28 39 views
1

我有一個需求,其中基於某些條件我需要調用一個普通對話框或LuisDialog,我無法實現相同。如何從MessageController中調用普通對話框和LuisDialog

if(condition == 1) 
    return await Conversation.SendAsync(message,() => new SampleLuisDialog()); 
else 
    return await Conversation.SendAsync(message,() => new SimpleIDialog()); 

的問題是:
當滿足第二條件時,內SimpleIDialog執行的邏輯。當它滿足第一條件而不是進入SampleLuisDialog時,它再次進入SimpleIDialogstartAsync。 我在這裏做錯了什麼?

+0

這裏只有一個條件。使用調試器並查看'condition'變量的值是什麼。 – BartoszKP

+0

只有一個條件,當我說第二個條件,我的意思是其他部分 – suchismita

+0

好的,那麼我的評論的另一部分仍然適用。如何驗證條件滿足時,else子句是否正在執行?嘗試調試器! – BartoszKP

回答

0

在你第一次調用的對話框中,你必須在某個時候調用Context.Done。在此之前,用戶被卡在該對話框中。

因此,在您啓動另一個對話框之前,您必須「關閉」第一個被調用的對話框。

+0

同意。如果我們有一個根對話框,並且從它內部,我們嘗試調用其他的子對話框,那麼效果很好。但在我的情況下,我試圖從MessageController.cs中調用多個對話框 – suchismita

相關問題