Advertisement
Guest User

Untitled

a guest
May 9th, 2012
142
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.71 KB | None | 0 0
  1. MVC3: Use of ActionMethodSelectorAttribute causes HttpPostAttribute to be ignored
  2. public class AjaxRequestAttribute : ActionMethodSelectorAttribute
  3. {
  4. public override bool IsValidForRequest(ControllerContext controllerContext, System.Reflection.MethodInfo methodInfo)
  5. {
  6. return controllerContext.HttpContext.Request.IsAjaxRequest();
  7. }
  8. }
  9.  
  10. [AjaxRequest]
  11. public ActionResult Login()
  12. {
  13. ...
  14. }
  15.  
  16. [HttpPost, AjaxRequest]
  17. public ActionResult Login(LoginModel model, string returnUrl)
  18. {
  19. ...
  20. }
  21.  
  22. public class AjaxPostRequestAttribute : HttpPostAttribute
  23. {
  24. public override bool IsValidForRequest(
  25. ControllerContext controllerContext, MethodInfo methodInfo)
  26. {
  27. var isHttpPost = base.IsValidForRequest(controllerContext, methodInfo);
  28. return isHttpPost
  29. && controllerContext.HttpContext.Request.IsAjaxRequest();
  30. }
  31. }
  32.  
  33. [AjaxPostRequest]
  34. public ActionResult Login(LoginModel model, string returnUrl)
  35. {
  36. ...
  37. }
  38.  
  39. public class AjaxGetAttribute : ActionMethodSelectorAttribute
  40. {
  41. public override bool IsValidForRequest(ControllerContext controllerContext, MethodInfo methodInfo)
  42. {
  43. var isHttpGet = new AcceptVerbsAttribute(HttpVerbs.Get).IsValidForRequest(controllerContext, methodInfo);
  44. return isHttpGet && controllerContext.HttpContext.Request.IsAjaxRequest();
  45. }
  46. }
  47.  
  48. public class AjaxPostAttribute : ActionMethodSelectorAttribute
  49. {
  50. public override bool IsValidForRequest(ControllerContext controllerContext, MethodInfo methodInfo)
  51. {
  52. var isHttpPost = new AcceptVerbsAttribute(HttpVerbs.Post).IsValidForRequest(controllerContext, methodInfo);
  53. return isHttpPost && controllerContext.HttpContext.Request.IsAjaxRequest();
  54. }
  55. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement