Как я могу проверить, является ли текущий запрос ajax-запросом в контроллере? - PullRequest
2 голосов
/ 01 сентября 2010

В некоторых случаях я отправляю запросы jQuery.get () в метод действия, а в других случаях это запрос браузера. Можно ли как-то разграничить их, чтобы я мог соответственно возвращать разные результаты действий?

Ответы [ 3 ]

24 голосов
/ 01 сентября 2010

я обычно использую старое:

if (Request.IsAjaxRequest())

внутри контроллера.

2 голосов
/ 01 сентября 2010

Если это разные действия, которые вы хотите вернуть, тогда вы можете иметь общее действие, которое перенаправляет на другое действие в зависимости от запроса

public ActionResult GetData()
{
  if(Request.IsAjaxRequest())
        return RedirectToAction("AjaxRequest");
  else
        return RedirectToAction("NonAjaxRequest");
}
2 голосов
/ 01 сентября 2010

Если вы хотите вернуть разные результаты действий, используйте разные действия. Однако, если он ДОЛЖЕН быть одинаковым, вы можете изменить URL и отправить с ним дополнительный параметр, например

htt://mysite.com/controller/action?ajax=ajax

Кроме того, я бы не рекомендовал использовать Get's для AJAX. Лучше использовать пост $.post в отношении безопасности.

Я очень советую каждому разработчику MVC посмотреть шоу HaaHa: http://live.visitmix.com/MIX10/Sessions/FT05

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