我在 asp.net mvc-5 中创建一个网络应用程序,
我正在使用 IValidatableObject 接口进行验证,
这是我的模型的外观,
public class LicenseInfo : IValidatableObject
{
public int LicenseId { get; set; }
//other properties
public IEnumerable<ValidationResult> Validate(ValidationContext validationContext)
{
//Validate class which will be called on submit
}
}
我的观点
@using (Ajax.BeginForm("_AddEditLicense", "User", new AjaxOptions { HttpMethod = "POST", UpdateTargetId = "dvLicenseContent", OnSuccess = "fnAddEditOnSuccess" }))
{
@Html.ValidationSummary(false)
@Html.DropDownListFor(m => m.LicenseId, new SelectList(Model.LicenseData, "Value", "Text"), "Select....", new { @class = "form-control" })
@*other html elements*@
<input type="submit" value="@ViewBag.Submit" id="btnaddLicense" class="btn btn-primary btn-block" />
}
我的控制器
[HttpPost]
public ActionResult _AddEditLicense(LicenseInfo data)
{
if (ModelState.IsValid)
{
//execution
}
}
当我LicenseId = 0
的验证不起作用并且我的控制器上的调试器直接执行时,但是当LicenseId > 0
我的验证方法正在执行时。