MVC: Как работает ajax-вызов действия контроллера, передавая меньше параметров, чем требуется, но он все еще работает? - PullRequest
0 голосов
/ 20 октября 2011

У меня есть эта функция на моей странице просмотра

var params = {
                Param1: $('#as').val(),
                Param2: $('input[name=dswe]').val(),
                Param3: $('inpu`enter code here`t:radio[name=wer]:checked').val()
            }
  $.ajax({
                    type: 'POST',
                    url: 'controlleractionname',
                    data: params,
                    error: function(xhr, ajaxOptions, thrownError) {
                        alert(xhr.statusText);
                    },

                    success: function(html) {
                        $('#Message').html('MRR Received Date SAVED');
                        closeDialog();

                    },
                    cache: false
                });

Это вызывает следующее действие на странице контроллера

  public string controlleractionname(string param1, DateTime param2, int param3, Classdata data1)
        {

     code is here
        }

Теперь, мой вопрос, это прекрасно работает, но я хотел знать, как это работает? так как я передаю только 3 параметра из AJAX для этого действия контроллера. Четвертый параметр - это класс обработки данных службы WCF.

Я спрашиваю, потому что это работающее приложение, и я новичок в этом проекте и пытаюсь понять функциональность.

Любой вклад приветствуется.

1 Ответ

0 голосов
/ 20 октября 2011

Когда ASP.NET MVC сначала получает запрос, он совпадает с маршрутом. У вас должен быть маршрут, соответствующий URL-адресу, на который вы отправляете сообщение.

Как только ASP.NET MVC найдет совпадение, он создаст экземпляр контроллера, указанного в маршруте, и вызовет метод действия, также указанный в маршруте.

На этом этапе ASP.NET MVC проходит процесс, в котором он пытается найти информацию из запроса HTTP (значения формы, параметры строки запроса и т. Д.) И сопоставляет ее с параметрами, определенными в определении метода для действия. Например, если MVC найдет параметр строки запроса «param1», он автоматически передаст значение строки запроса в «param1» в вашем методе. Если он не может найти значение в запросе, он передаст значение по умолчанию (например, ноль для строк, 0 для целых чисел.)

Это упрощенное объяснение, но я надеюсь, что оно даст вам представление о том, что происходит.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...