Как проверить AJAX-подписку в ASP.NET MVC? - PullRequest
2 голосов
/ 18 июня 2009

В частности, как я могу передать статический метод Request.IsAjaxRequest ()?

Я получаю исключение «System.ArgumentNullException» при попытке проверить следующий код:

if (Request.IsAjaxRequest())
{
  return Json(data);
}
return View(data2);

Я использую Moq.Спасибо за любую помощь.

1 Ответ

5 голосов
/ 18 июня 2009

Для работы с Request.IsAjaxRequest () нужны насмешливые Request и Request.Headers ():

var request = new Mock<HttpRequestBase>();
request.SetupGet(x => x.Headers).Returns(new System.Net.WebHeaderCollection {
    {"X-Requested-With", "XMLHttpRequest"}
});

var context = new Mock<HttpContextBase>();
context.SetupGet(x => x.Request).Returns(request.Object);

var controller = new YourController();
controller.ControllerContext = new ControllerContext(context.Object, new RouteData(), controller);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...