Don't like ads? PRO users don't see any ads ;-)
Guest

Untitled

By: a guest on Jul 24th, 2012  |  syntax: None  |  size: 2.55 KB  |  hits: 15  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. No selected items in the ListBoxFor should show validation error in asp.net mvc
  2. [HttpGet]
  3.         public ActionResult Delete()
  4.         {
  5.             var templates = _templateDataProvider.GetTemplates();
  6.             var listViewModel = new ListViewModel<Template>();
  7.             listViewModel.DisplayList = templates;
  8.             return PartialView(listViewModel);
  9.         }
  10.  
  11.         [HttpPost]
  12.         public ActionResult Delete(int[] selectedIds)
  13.         {
  14.             if (selectedIds == null)
  15.             {
  16.                 ModelState.AddModelError("Name", "Nothing selected");
  17.             }
  18.  
  19.             if (ModelState.IsValid)
  20.             {
  21.                 return Json(new { success = true });
  22.             }
  23.  
  24.             return PartialView();
  25.         }
  26.        
  27. @model ITMS.ViewModels.ListViewModel<ITMS.Models.Template>
  28. <script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script>
  29. <script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script>
  30. @using (Html.BeginForm("Delete", "Template"))
  31. {
  32.     @Html.ValidationSummary(false)      
  33.     @Html.ListBoxFor(x => x.SelectedIds, new SelectList(Model.DisplayList, "Id", "Name"),new { @class = "select"} )
  34. }
  35.        
  36. return PartialView(new ListViewModel<Template> { DisplayList = _templateDataProvider.GetTemplates() });
  37.        
  38. var templates = _templateDataProvider.GetTemplates();
  39. var listViewModel = new ListViewModel<Template>();
  40. listViewModel.DisplayList = templates;
  41. return PartialView(listViewModel);
  42.        
  43. [HttpPost]
  44. public ActionResult Delete(ListViewModel<Template> model)
  45. {
  46.     if (ModelState.IsValid)
  47.     {
  48.         return Json(new { success = true });
  49.     }
  50.  
  51.     // Make sure you rebind the DisplayList property
  52.     model.DisplayList = _templateDataProvider.GetTemplates();
  53.     return PartialView(model);
  54. }
  55.        
  56. [Required]
  57. public IEnumerable<Template> SelectedIds { get; set; }
  58.        
  59. public IEnumerable<Template> GetTemplates()
  60. {
  61.     var templates = HttpContext.Cache["templates"] as IEnumerable<Template>;
  62.     if (templates == null)
  63.     {
  64.         templates = _templateDataProvider.GetTemplates();
  65.         HttpContext.Cache["templates"] = templates;
  66.     }
  67.     return templates;
  68. }
  69.        
  70. public ActionResult Delete()
  71. {
  72.     var listViewModel = new ListViewModel<Template>();
  73.     listViewModel.DisplayList = GetTemplates();
  74.     return PartialView(listViewModel);
  75. }
  76.  
  77. [HttpPost]
  78. public ActionResult Delete(ListViewModel<Template> model)
  79. {
  80.     if (ModelState.IsValid)
  81.     {
  82.         return Json(new { success = true });
  83.     }
  84.  
  85.     model.DisplayList = GetTemplates();
  86.     return PartialView(model);
  87. }