Я создаю веб-приложение в 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
тогда мой метод проверки выполняется.