【发布时间】:2009-06-18 05:27:33
【问题描述】:
具体来说,如何传递静态方法Request.IsAjaxRequest()?
当我尝试测试以下代码时出现异常“System.ArgumentNullException”:
if (Request.IsAjaxRequest())
{
return Json(data);
}
return View(data2);
我正在使用起订量。感谢您的帮助。
【问题讨论】:
具体来说,如何传递静态方法Request.IsAjaxRequest()?
当我尝试测试以下代码时出现异常“System.ArgumentNullException”:
if (Request.IsAjaxRequest())
{
return Json(data);
}
return View(data2);
我正在使用起订量。感谢您的帮助。
【问题讨论】:
您需要模拟 Request 和 Request.Headers 才能使用 Request.IsAjaxRequest():
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);
【讨论】: