Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/288.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在Microsoft Bot Framework中,如何将字符数限制为特定的数字?_C#_Botframework - Fatal编程技术网

C# 在Microsoft Bot Framework中,如何将字符数限制为特定的数字?

C# 在Microsoft Bot Framework中,如何将字符数限制为特定的数字?,c#,botframework,C#,Botframework,(例如:我想在文本框中添加give电话号码,因此只需在其中添加10个号码。不允许超过10个)由于您无法访问频道中的前端,因此必须验证服务器端,正如Nils所说的那样。在本例中,我使用的是RootDialog.cs,但如果需要,也可以在消息控制器中执行。您可以尝试类似的方法,但可能需要执行某种while循环来多次重新编程 private async Task MessageReceivedAsync(IDialogContext context, IAwaitable<obj

(例如:我想在文本框中添加give电话号码,因此只需在其中添加10个号码。不允许超过10个)

由于您无法访问频道中的前端,因此必须验证服务器端,正如Nils所说的那样。在本例中,我使用的是RootDialog.cs,但如果需要,也可以在消息控制器中执行。您可以尝试类似的方法,但可能需要执行某种while循环来多次重新编程

        private async Task MessageReceivedAsync(IDialogContext context, IAwaitable<object> result)
    {
        var activity = await result as Activity;

        if (activity.Text.Length > 10)
        {
            await context.PostAsync($"Please enter a valid phone number");
            //prompt again
            context.Wait(MessageReceivedAsync);
        }
        else
        {
            //do stuff
        }
        context.Wait(MessageReceivedAsync);
    }
专用异步任务消息ReceivedAsync(IDialogContext上下文,IAwaitable结果)
{
var活动=等待作为活动的结果;
如果(activity.Text.Length>10)
{
等待上下文。PostAsync($“请输入有效的电话号码”);
//再次提示
Wait(MessageReceivedAsync);
}
其他的
{
//做事
}
Wait(MessageReceivedAsync);
}
可以解决此问题-您需要使用带有文本输入的卡进行响应。只需在卡的标记中明确设置
maxLength
属性。以下是所需标记的示例:

{
  "$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
  "type": "AdaptiveCard",
  "version": "0.5",
  "body": [
    {
      "type": "Input.Text",
      "id": "phone",
      "placeholder": "Enter a phone number",
      "speak": "Enter a phone number",
      "maxLength": 10
    }
  ],
  "actions": [
    {
      "type": "Action.Submit",
      "title": "Action.Submit data",
    }
  ]
}

您可以对消息文本进行服务器端输入验证,但限制客户端的输入字段并不是我所知道的功能。