Как правильно выполнить многопараметрическую проверку формы AJAX с помощью jQuery и ASP.NET MVC? - PullRequest
0 голосов
/ 23 октября 2009

У меня есть регистрационная форма для веб-сайта, который должен проверить, существует ли уже адрес электронной почты для данного идентификатора компании. Когда пользователь вкладывает или щелкает из поля электронной почты (событие размытия), я хочу, чтобы jQuery отключился и выполнил запрос AJAX, чтобы затем я мог предупредить пользователя, что ему нужно выбрать другой адрес.

В моем контроллере у меня есть такой метод:

public JsonResult IsEmailValid(int companyId, string customerNumber)
{            
  return Json(...);
}

Чтобы это работало, мне нужно обновить мои маршруты, чтобы они указывали прямо на /Home/IsEmailValid и два параметра {companyId} и {customerNumber}. Похоже, что я "хакую" в системе маршрутизации и думаю, что, возможно, есть более чистая альтернатива.

Есть ли "правильный" или рекомендуемый способ выполнения этой задачи?

РЕДАКТИРОВАТЬ: Под маршрутами я подразумевал, что передача дополнительного параметра ({customerNumber}) в URL (/ Home / IsEmailValid / {companyId} / {customerNumber}) не будет работать с отображением маршрута по умолчанию.

Ответы [ 2 ]

2 голосов
/ 23 октября 2009

Для этого вы можете использовать плагин проверки jQuery .

Вам придется реализовать свой собственный метод, хотя, например, так:

$.validator.addMethod("checkCompanyEmail", function(value, element) {
    var email = value;
    var companyID = //get the companyID
    var result;
    //post the data to server side and process the result and return it
    return result;
}, "That company email is already taken.");

Затем зарегистрируйте свой метод проверки:

$("#the-form").validate({
   rules: { email: { required: true, "checkCompanyEmail" : true } } 
});

PS. Я не понимаю, почему для этого нужно «взломать» маршрутизацию.

0 голосов
/ 06 декабря 2010

из проверочной документации под удаленный метод

    remote: {
      url: "check-email.php",
      type: "post",
      data: {
        username: function() {
         return $("#username").val();
        }
      }
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...