У моей формы есть одно поле как Фирменное наименование, кнопка onsubmit вызывает метод jquery saveBasicInfo, который проверяет требуемую проверку на уровне модели, поэтому она не будет отправлена, но когда я добавляю дубликат формы фирменного наименования. сначала класс проверки модели, а затем при действии контроллера.
@using (Ajax.BeginForm("ActionName", "Controller", new { area = "Area1" }, new AjaxOptions { HttpMethod = "Post", OnSuccess = "onSuccessSave", OnFailure = "OnFailureSave" }, new { @class = "firm-info-form", role = "form", id = "frmTraditionalFirmBasicInformation" }))
{
<div class="form-group">
@Html.LabelFor(m => m.FirmName)
@Html.TextBoxFor(m => m.FirmName))
@Html.ValidationMessageFor(m => m.FirmName)
</div>
//save button
}
function saveBasicInfo() {
var formToSave = $("#frmTraditionalFirmBasicInformation");
formToSave.validate();
if (formToSave.valid()) {
formToSave.submit();
}
else {
focusControlOnValidationError();
}
}
public class FirmProfileValidator : AbstractValidator<FirmBasicInformationViewModel>
{
private readonly IFirmRepository _firmRepository;
public FirmProfileValidator()
{
_firmRepository = new FirmRepository();
RuleFor(x => x.FirmName).NotEmpty().WithMessage("Required").Must(ValidateFirmName).WithMessage("Firm Name Already Exist");
}
private bool ValidateFirmName(FirmBasicInformationViewModel profile, string firmName)
{
try
{
var result=_firmRepository.CheckFirmNameAlreadyExistorNot(profile.FirmName, profile.FirmId);
if (result == 0)
return true;
else
return false;
}
catch (Exception)
{
return false;
}
}
}
Я хочу, чтобы он не попадал в контроллер, должен отображаться название фирмы Exist при нажатии кнопки сохранения.