2017-03-10 1 views
0

메시지에 엔터티가 있어도 양식 번호가 여전히 티켓 번호를 입력하라는 메시지를 표시합니다. 여기서 TicketNumber를 int로 선언했습니다. 또한 TicketNumber를 int로 선언 했습니까? 숫자 전달 곳 Botframework Formflow가 바인딩되지 않았습니다. int 또는 int에 내장 된 LUIS builtin.number? field

나는 변화 2를 시도했다. 그런데도 프롬프트를 표시 할 때 12345를 현재 선택으로 표시하는 티켓 번호를 묻습니다. 아래 시계에서 볼 수있는 null Score가 문제가 될 수 있습니까? 여러 개의 다른 문자열 필드가있는 다른 큰 양식이 있는데 제대로 작동합니다.

변화 1 :

var ticketStatusParametersForm = new FormDialog<TicketStatusParameters>(new TicketStatusParameters(), this.MakeTicketStatusParametersForm, FormOptions.PromptInStart, result.Entities); 

변화 2 :

var ticketNumber = 12345; 
var ticketStatusParametersForm = new FormDialog<TicketStatusParameters>(new TicketStatusParameters { TicketNumber = ticketNumber}, this.MakeTicketStatusParametersForm, FormOptions.PromptInStart, result.Entities); 

public class TicketStatusParameters 
    { 
     [Prompt("Please enter a ticket number {||}")] 
     [Describe("Ticket Number")] 
     [Template(TemplateUsage.NotUnderstood, "Please enter a valid ticket number. I did not understand \"{0}\"")] 
     public int TicketNumber { get; set; } 
    } 
+0

당신이 내 코드 ( 는 { 이 [프롬프트 ("티켓 번호를 입력 해주세요")] 를 [설명 [직렬화] 공용 클래스 TicketStatusParameters 모습입니다 –

답변

1

FormFlow이 같은 이름을 가진 필드를 찾기 위해 EntityRecommendation.Type 값을 사용하기 때문에 미리 만들어진 단체 작동하지 않습니다 바인딩 자동 귀하의 양식 모델. 변형 # 2를 사용해야합니다. 변화 # 2에서 설명하는 문제에 대해서는

enter image description here

, 나는 문제가 프롬프트를 열거 할 수 없습니다 필드 이해가되지 않는 {||} 패턴 요소를 가지고 있다고 생각합니다. 사용

시도 단지 [Prompt("Please enter a ticket number")]

0

내가 그 필드가 해당 필드가 생략 된 상태의 한 부분으로 전달 될 때 널 (NULL) 필드가 테스트 코드가 있습니다. FormOptions.PromptFieldsWithValues를 전달하지 않는 한이 동작을 어떻게 받는지 알 수 없습니다. 수업을 이걸로 바꿨 잖아, 그렇지?

public class TicketStatusParameters 
    { 
     [Prompt("Please enter a ticket number {||}")] 
     [Describe("Ticket Number")] 
     [Template(TemplateUsage.NotUnderstood, "Please enter a valid ticket number. I did not understand \"{0}\"")] 
     public int? TicketNumber { get; set; } 
    } 
+0

하시기 바랍니다 result.Entities의 값을 표시 할 수 있습니다 "티켓 번호")] [템플릿 (TemplateUsage.NotUnderstood, "유효한 티켓 번호. 내가 이해하지 못했지만를 입력하십시오 \"{0} \ "")] 공공 INT? TicketNumber {get; 세트; } 공공 재정의 문자열 ToString() { 반환 및 String.format ($ "{TicketNumber}"); } } – KalyanS

+0

이것은 클래스입니다. 이전 의견을 무시하십시오. 서식 공용 클래스 TicketStatusParameters { [프롬프트 ("티켓 번호를 입력 해주세요")] [템플릿 (TemplateUsage.NotUnderstood는 "유효한 티켓 번호를 입력 해주세요 [("티켓 번호 ") 설명]. I를 엉망 \ "{0} \" ")] public int? TicketNumber {get; 세트; 내가 [LuisIntent ("TicketStatus")] 작업 TicketStatus (IDialogContext 컨텍스트, LuisResult 결과) 비동기 공공 을 소모하고 어떻게} } – KalyanS

+0

이입니다 { var에 ticketStatusParametersForm = 새로운 FormDialog (새 TicketStatusParameters(),이 .MakeTicketStatusParametersForm, FormOptions.PromptInStart, result.Entities); 컨텍스트. 호출 (ticketStatusParametersForm, this.ResumeAfterTicketStatusParametersFormDialog); } – KalyanS