JQuery AJAX и собственный маршрут в asp.net MVC - PullRequest
0 голосов
/ 13 декабря 2011

У меня свой маршрут:

routes.MapRoute(
         "Index", // Route name
         "Index/{date}", // URL with parameters
         new { controller = "Index", action = "Index", 
         date = UrlParameter.Optional } // Parameter defaults 

Как я могу вызвать мой метод в контроллере индекса?

[HttpPost]
        public ActionResult GetIndexationWage(string BeginDate, string EndDate)
{
...
} 

Когда я пытаюсь это сделать:

$.ajax({
                url: '@Url.Action("GetIndexationWage")',
                type: 'POST',
                data: JSON.stringify(myVar),
                dataType: 'json',
                processData: false,
                contentType: 'application/json; charset=utf-8',
                success: function(data) {
....

Он возвращает мою страницу (/ Index), но не данные JSON. Как это сделать без отдельного контроллера (экземпляр - ajaxController)?

1 Ответ

1 голос
/ 13 декабря 2011

Ваш метод контроллера MVC должен использовать JsonResult

Кроме того, поскольку ваш код сейчас, ваша сигнатура метода индекса будет иметь только один параметр (дату), и, следовательно, вызов другого метода GetIndexationWage будет иметьчтобы получить его параметр "дата окончания" из другого места ... если это задумано, хорошо ... просто убедитесь, что вы это видите.

Кроме того, ваш вызов jquery вызывает метод GetIndexationWage напрямую, а не используетмаршрут.Это тоже было задумано?Если это так, убедитесь, что вы используете JsonResult и знаете, что обходите назначенный маршрут.

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