Guest User

Untitled

a guest
Jul 12th, 2018
99
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.20 KB | None | 0 0
  1. public enum Status
  2. {
  3. Ok,
  4. Error
  5. }
  6.  
  7. public class JsonResponse
  8. {
  9. public Status Status { get; set; }
  10. public string Message { get; set; }
  11. public List<string> Errors { get; set; }
  12. }
  13.  
  14. [HttpPost]
  15. public ActionResult Login(UserLoginModel model)
  16. {
  17. JsonResponse res = new JsonResponse();
  18.  
  19. if (!ModelState.IsValid)
  20. {
  21. res.Status = Status.Error;
  22. res.Errors = GetModelStateErrorsAsString(this.ModelState);
  23. res.Message = "Oh dear, what have you done. Check the list of errors dude!";
  24. }
  25. else
  26. {
  27. // Save it here...
  28.  
  29. // Return success
  30. res.Status = Status.Ok;
  31. res.Message = "Everything was hunky dory";
  32. }
  33.  
  34. return Json(res);
  35. }
  36.  
  37. private List<string> GetModelStateErrorsAsString(ModelStateDictionary state)
  38. {
  39. List<string> errors = new List<string>();
  40.  
  41. foreach (var key in ModelState.Keys)
  42. {
  43. var error = ModelState[key].Errors.FirstOrDefault();
  44. if (error != null)
  45. {
  46. errors.Add(error.ErrorMessage);
  47. }
  48. }
  49.  
  50. return errors;
  51. }
  52.  
  53. <script type="text/javascript">
  54. $("form").submit(function (evt) {
  55. // validate
  56. $('form').valid();
  57.  
  58. // extract values to submit
  59. var form = $(this),
  60. username = form.find("[name=Username]").val(),
  61. password = form.find("[name=Password]").val(),
  62. json = JSON.stringify({
  63. Username: username,
  64. Password: password
  65. });
  66.  
  67. $.ajax({
  68. url: form.attr("action"),
  69. type: 'POST',
  70. contentType: 'application/json; charset=utf-8',
  71. dataType: 'json',
  72. data: json,
  73. success: function (result) {
  74. alert(result.Message);
  75. }
  76. });
  77.  
  78. // stop form submitting
  79. evt.preventDefault();
  80. });
  81. </script>
  82.  
  83. private Dictionary<string, string> GetModelStateErrorsAsString(ModelStateDictionary state)
  84. {
  85. Dictionary<string, string> errors = new Dictionary<string, string>();
  86. foreach (var key in ModelState.Keys)
  87. {
  88. var error = ModelState[key].Errors.FirstOrDefault();
  89. if (error != null)
  90. {
  91. errors.Add(key, error.ErrorMessage);
  92. }
  93. }
  94. return errors;
  95. }
Add Comment
Please, Sign In to add comment