Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public enum Status
- {
- Ok,
- Error
- }
- public class JsonResponse
- {
- public Status Status { get; set; }
- public string Message { get; set; }
- public List<string> Errors { get; set; }
- }
- [HttpPost]
- public ActionResult Login(UserLoginModel model)
- {
- JsonResponse res = new JsonResponse();
- if (!ModelState.IsValid)
- {
- res.Status = Status.Error;
- res.Errors = GetModelStateErrorsAsString(this.ModelState);
- res.Message = "Oh dear, what have you done. Check the list of errors dude!";
- }
- else
- {
- // Save it here...
- // Return success
- res.Status = Status.Ok;
- res.Message = "Everything was hunky dory";
- }
- return Json(res);
- }
- private List<string> GetModelStateErrorsAsString(ModelStateDictionary state)
- {
- List<string> errors = new List<string>();
- foreach (var key in ModelState.Keys)
- {
- var error = ModelState[key].Errors.FirstOrDefault();
- if (error != null)
- {
- errors.Add(error.ErrorMessage);
- }
- }
- return errors;
- }
- <script type="text/javascript">
- $("form").submit(function (evt) {
- // validate
- $('form').valid();
- // extract values to submit
- var form = $(this),
- username = form.find("[name=Username]").val(),
- password = form.find("[name=Password]").val(),
- json = JSON.stringify({
- Username: username,
- Password: password
- });
- $.ajax({
- url: form.attr("action"),
- type: 'POST',
- contentType: 'application/json; charset=utf-8',
- dataType: 'json',
- data: json,
- success: function (result) {
- alert(result.Message);
- }
- });
- // stop form submitting
- evt.preventDefault();
- });
- </script>
- private Dictionary<string, string> GetModelStateErrorsAsString(ModelStateDictionary state)
- {
- Dictionary<string, string> errors = new Dictionary<string, string>();
- foreach (var key in ModelState.Keys)
- {
- var error = ModelState[key].Errors.FirstOrDefault();
- if (error != null)
- {
- errors.Add(key, error.ErrorMessage);
- }
- }
- return errors;
- }
Add Comment
Please, Sign In to add comment