Ich verwende PromptDialog.Choice()
, um meinen Benutzern verschiedene Optionen zu präsentieren. Die Anzahl der Versuche ist auf 0 festgelegt. Wenn sie also etwas eingeben, das keine gültige Option ist, wird es keine Wiederholungen geben.Wie wird das Ergebnis von Prompt.Choice() an den aktuellen Dialog weitergeleitet?
In diesem Fall möchte ich den eingegebenen Text an den aktuellen Dialog übergeben, der sich vorgestellt hat, um die Nachricht zu bearbeiten.
Was ist der richtige Weg, dies zu tun? Ich habe versucht, eine neue Aktivität im Resume-Handler des Prompt-Dialogs zu erstellen und direkt die Methode MessageReceivedAsync()
aufzurufen, aber das a) funktioniert nicht wie erwartet und b) scheint ein Hack zu sein.
Ein Beispiel wäre eine Eingabeaufforderung, die fragt: "Ich bin mir nicht sicher, was Sie tun möchten. Zeigen Sie Hilfe oder versuchen Sie es weiter?" mit zwei Optionen "Hilfe" und "Weiter versuchen". Wenn der Benutzer jetzt jedoch "Was ist eins plus eins?" Eingeben möchte, möchte ich, dass der aktuelle Dialog das übernimmt.
Ich könnte auch anders fragen: Wie kann ich den aktuellen Dialog oben auf dem Stapel durch einen anderen ersetzen? Dies würde mir erlauben, den gleichen Dialog aufzurufen.
Sieht so aus ... wenn ich mir die NodeJS-Beispiele anschaue, scheinen sie mehr Flexibilität in Bezug auf das Stack-Management zu bieten ... auch hier ist es mit NodeJS möglich: https://stackoverflow.com/questions/45334339/How-to-Pop-zu-Root-Dialog-mit-Bot-Framework – Krumelur