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