Why doesn't Request.IsAjaxRequest() work in ASP.NET MVC 3?
- by Rob Ellis
I'm creating a new project, asp.net mvc3 with Razor, and wanting to turn the LogOn into an ajax request.
HTML
@using (Ajax.BeginForm("LogOn", "Account", new AjaxOptions { HttpMethod="post", OnSuccess="LoginSubmitted"}))
{
}
Controller
if (Request.IsAjaxRequest())
{
return Json(new { ResultMessage = "Username or password provided is incorrect"});
}
else
{
ModelState.AddModelError("", "The user name or password provided is incorrect.");
}
Everything else remains the same.
First, looking at the the http response with Fiddler, I notice there is no x-requested-with header. So I add
<input type="hidden" name="X-Requested-With" value="XMLHttpRequest" />
That seems to work, but now what I receive back is a Json object, which isn't being parsed and instead Google Chrome is just rendering the Json to screen.
Whats happening?