我在Web API项目中使用FluentValidation.WebApi 6.2.1.0。有没有办法用FluentValidation验证枚举并返回自定义消息?
我的控制器操作如下,
public IHttpActionResult Get([FromUri]CheckUpdateVM info)
{
...
}
我的模特,
[Validator(typeof(CheckUpdateVMValidator))]
public class CheckUpdateVM
{
public DeviceTypes Device { get; set; }
}
我正在寻找类似的东西,
public class CheckUpdateVMValidator : AbstractValidator<CheckUpdateVM>
{
public CheckUpdateVMValidator()
{
RuleFor(x => x.Device).Must(x => Enum.IsDefined(typeof(DeviceTypes), x)).WithMessage("xxx");
}
}
使用上面的代码,Model binder验证&#34; Device&#34;的值。参数和响应有错误。但我无法自定义错误消息。 (如果我将&#34; Device&#34;属性类型设置为字符串,则可以正常工作。)
答案 0 :(得分:1)
在这种情况下,创建自定义验证器可能是更好的方法。
<a onclick="interface.callFromJS()" href="inapp://capture" ontouchstart="">Your Button Message</a>
要使用DeviceEnumValidator,您可以在定义验证规则时调用SetValidator。
func webView(_ webView: UIWebView, shouldStartLoadWith request: URLRequest, navigationType: UIWebViewNavigationType) -> Bool {
if (request.url?.scheme == "inapp")
{
doYourAction()
}
return true
}