【发布时间】:2019-01-25 07:45:20
【问题描述】:
我设法创建了一个自定义数据注释来验证该值是否是有效的 JSON。当然可以改进课程,但我的问题是如何将 clint 端验证链接到课程:
public sealed class ValidateJsonAttribute : ValidationAttribute
{
protected override ValidationResult IsValid(object json, ValidationContext validationContext)
{
try
{
var result = JsonConvert.DeserializeObject(json.ToString());
}
catch (JsonReaderException ex)
{
return new ValidationResult(ex.Message);
}
return ValidationResult.Success;
}
}
这是客户端验证的示例,我该如何修复它以满足我的需要?
<script type="text/javascript">
$.validator.addMethod("cannotbevalue", function (value, element, params) {
if ($(element).val() == params.targetvalue) {
return false;
}
return true;
});
$.validator.unobtrusive.adapters.add('cannotbevalue', ['value'], function (options) {
options.rules['cannotbevalue'] = { targetvalue: options.params.value };
options.messages['cannotbevalue'] = options.message;
});
</script>
【问题讨论】:
-
在
addMethod方法中准确检查您在ValidateJsonAttribute中所做的事情,并根据检查返回 true 或 false。 -
在这种情况下,远程远程属性验证会容易得多。
-
@TanvirArjel 感谢您的回复,我会通知您:-)
-
@TanvirArjel 它可以工作而且很简单,谢谢。如果你把它作为解决方案,我很乐意接受。
-
好的!谢谢。我在写!
标签: asp.net-core data-annotations unobtrusive-validation