Laden ich eine Rettung von MvcContrib abgeleitet bin mit:ASP.NET in Denken anfordern Tricking anfordern Ajax für jQuery Datei
public class RescueAttribute : MvcContrib.Filters.RescueAttribute
{
public RescueAttribute(string view) : base(view)
{
IgnoreAjax = false;
}
public RescueAttribute(string view, params Type[] exceptionTypes) : base(view, exceptionTypes)
{
IgnoreAjax = false;
}
protected override ActionResult CreateActionResult(Exception exception, ExceptionContext context)
{
var controller = (string) context.RouteData.Values["controller"];
var action = (string) context.RouteData.Values["action"];
var model = new HandleErrorInfo(exception, controller, action);
if (context.Controller.ControllerContext.HttpContext.Request.IsAjaxRequest())
{
return new JsonResult(model);
}
return base.CreateActionResult(exception, context);
}
}
Nun, wenn Sie die Datei-Upload in jQuery.form verwenden, Request.IsAjaxRequest() zurückkehrt falsch. Anscheinend liegt das daran, dass Sie mit json keine Datei hochladen können; Dieses Plugin generiert einen versteckten Iframe um den Upload durchzuführen.
Zum Ausgleich ich einen versteckten Eingang zu irgendeiner Form am Anhängen, die mit jquery.form vorgelegt und Datei Eingänge:
$(this).append('<input type="hidden" name="X-Requested-With" value="XMLHttpRequest" />');
Es ist gut genug IsAjaxRequest zu täuschen. Gibt es einen Grund, warum ich sollte nicht dies tun?
+1 für sativingly dreckig hacken – BritishDeveloper
Also im Grunde ist das dann sicher. –