2012-05-29 5 views
0

С точки зрения сделать вызов AJAX, мы используем следующий метод:C# MVC лучший способ использовать AJAX

$.ajax({ 
      type: "POST", 
      async: false, 
      url: '@Url.Action("CheckPhone", "Progg")', 
      data: { input: WebPhoneNum 
      }, 
      success: function (iReturn) { 
       if (iReturn == 0) { 
        alert(Phone Number must be in format (XXX) XXX-XXXX. Please Re-Enter'); 
        submitval = false; 
       } 
      }, 
      error: function (xhr, status, error) { 
       var err = eval("(" + xhr.responseText + ")"); // Boil the ASP.NET AJAX error down to JSON.      
       alert('Call to CheckPhone failed with error: ' + err.Message); // display the error raised by the server 
      } 
     }); 

Обратите внимание, как это делает вызов в контроллер и возвращает значение. Мне было интересно, есть ли лучший способ сделать это. Я знаю, что .NET MVC имеет несколько встроенных вызовов ajax, но не смог найти тот, который соответствует тому, что я делаю ниже. Я знаю, что .NET MVC имеет сборку ajax-вызовов, которая с гиперссылкой, но это не то, что мне нужно. Мне просто нужно позвонить контроллеру, который возвращает некоторые значения.

БЛАГОДАРЯ

+0

может быть лучше место обзор кода –

ответ

0

Там только одна вещь, которую нужно исправить:

async: false 

должны стать:

async: true 

, потому что в противном случае вы не делаете AJAX. Вы отправляете синхронный запрос на сервер, зависающий от браузера клиента.

Помимо этого вы, кажется, выполняете дистанционную проверку с помощью этого запроса AJAX. Вероятно, вы можете взглянуть на атрибут [Remote], который встроен и который позволяет вам писать весь этот код. Все, что вам нужно сделать, это украсить свойство модели представления, которое должно быть проверено с помощью этого атрибута, а затем включить ненавязчивую проверку на стороне клиента, включив в него правильные сценарии.

+0

Hi Дарина , Я знаком с REMOTE. Что делать, если я хочу вернуться, скажем, объект JSON. Удаленный может не работать для этого, поскольку из моего понимания он возвращает true/false. –

+1

Если это необходимо для проверки, зачем вам нужно возвращать объект JSON? Как вы собираетесь его использовать? Вы не указали какой-либо контекст о том, чего вы пытаетесь достичь, и все же вы просите о лучших практиках. –

0

попытаться проверить формат ввода с помощью ajax? Я рекомендую вам ознакомиться с аннотациями данных для проверки такого рода деталей (пожалуйста, перепроверить на сервере при представить форму, как хорошая практика)

здесь является полезным учебник http://www.asp.net/mvc/tutorials/older-versions/models-(data)/validation-with-the-data-annotation-validators-cs

Смежные вопросы