在ViewModel中的MVC asp.net中进行自定义验证

时间:2019-06-07 21:32:17

标签: c# asp.net-mvc razor model-view-controller unobtrusive-validation

我添加了自定义验证,并在以下课程中添加了属性

班级

public class Transfer
{
 [MoneyTransfer]
  public decimal Amount { get; set; }
}

查看模型

public Transfer Transfer{ get; set; }
public decimal TransferBalance { get; set; }
public decimal TotalMoney{ get; set; }

验证类

 public class MoneyTransfer: ValidationAttribute
    {
        protected override ValidationResult IsValid(object value, ValidationContext validationContext)
        {
         \\Do Validation
        }
   }

将值作为0传入,并传递validateContext和Transfer模型,但没有数据

CSHTML页面

@model DatabaseMVCPractice.ViewModels.TransfersViewModel
@using (Html.BeginForm("Submit", "Transfers", FormMethod.Post))
{
 <div class="form-group">        
    @Html.EditorFor(model => model.Transfer.Amount, new { htmlAttributes = new { @class = "form-control" } })
    @Html.ValidationMessageFor(model => model.Transfer.Amount, "", new { @class = "text-danger" })
 </div>
}

问题在于,当我在表单上单击“提交”时,“验证”类没有任何数据。如果我将表单更改为仅使用传输模型而不是视图模型,则它可以正常工作,并且Validation Class具有正确的数据。我可以将客户验证用于视图模型吗?

0 个答案:

没有答案