嗨,我有一个例子,这个表格。
[Serializable]
public enum PassportFormType
{
someEnum1,
someEnum2,
someEnum3,
}
[Serializable]
public class PassportForm
{
[Prompt("Question text {||}")]
public PassportFormType? Situace { get; set; }
[Prompt("Question text {||}")]
public int Count{ get; set; }
}我希望对我的bot中的每个枚举类型使用自定义验证。我知道我可以用到这样的东西
.Field(nameof(Toppings),
validate: async (state, value) =>
{
.
.
.
return result;
})但这不是我的解决方案,因为我需要为每个表单一次又一次地使用它。
如何对每个枚举类型应用自定义验证?
发布于 2017-08-12 03:28:23
您还可以提供一个方法,而不是lambda:
async Task<ValidateResult> ValidateEnum(PassportForm state, object value)
{
var result = new ValidateResult();
result.IsValid = true;
result.Value = value;
//logic ...
return result;
}并像这样使用它:
.Field(nameof(PassportForm.Situace), validate: ValidateEnum)发布于 2017-08-13 16:25:05
你的答案是正确的。但是我的问题是不正确的。
我不能使用验证,因为我想要将输入文本解析为值。而是在全球范围内申请每一个枚举。
https://stackoverflow.com/questions/45632471
复制相似问题