- No selected items in the ListBoxFor should show validation error in asp.net mvc
- [HttpGet]
- public ActionResult Delete()
- {
- var templates = _templateDataProvider.GetTemplates();
- var listViewModel = new ListViewModel<Template>();
- listViewModel.DisplayList = templates;
- return PartialView(listViewModel);
- }
- [HttpPost]
- public ActionResult Delete(int[] selectedIds)
- {
- if (selectedIds == null)
- {
- ModelState.AddModelError("Name", "Nothing selected");
- }
- if (ModelState.IsValid)
- {
- return Json(new { success = true });
- }
- return PartialView();
- }
- @model ITMS.ViewModels.ListViewModel<ITMS.Models.Template>
- <script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script>
- <script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script>
- @using (Html.BeginForm("Delete", "Template"))
- {
- @Html.ValidationSummary(false)
- @Html.ListBoxFor(x => x.SelectedIds, new SelectList(Model.DisplayList, "Id", "Name"),new { @class = "select"} )
- }
- return PartialView(new ListViewModel<Template> { DisplayList = _templateDataProvider.GetTemplates() });
- var templates = _templateDataProvider.GetTemplates();
- var listViewModel = new ListViewModel<Template>();
- listViewModel.DisplayList = templates;
- return PartialView(listViewModel);
- [HttpPost]
- public ActionResult Delete(ListViewModel<Template> model)
- {
- if (ModelState.IsValid)
- {
- return Json(new { success = true });
- }
- // Make sure you rebind the DisplayList property
- model.DisplayList = _templateDataProvider.GetTemplates();
- return PartialView(model);
- }
- [Required]
- public IEnumerable<Template> SelectedIds { get; set; }
- public IEnumerable<Template> GetTemplates()
- {
- var templates = HttpContext.Cache["templates"] as IEnumerable<Template>;
- if (templates == null)
- {
- templates = _templateDataProvider.GetTemplates();
- HttpContext.Cache["templates"] = templates;
- }
- return templates;
- }
- public ActionResult Delete()
- {
- var listViewModel = new ListViewModel<Template>();
- listViewModel.DisplayList = GetTemplates();
- return PartialView(listViewModel);
- }
- [HttpPost]
- public ActionResult Delete(ListViewModel<Template> model)
- {
- if (ModelState.IsValid)
- {
- return Json(new { success = true });
- }
- model.DisplayList = GetTemplates();
- return PartialView(model);
- }