Проверьте дубликаты FirmName из базы данных, используя свободную проверку в ASP.Net mvc - PullRequest
0 голосов
/ 07 ноября 2019

У моей формы есть одно поле как Фирменное наименование, кнопка 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 при нажатии кнопки сохранения.

...