我在部分/对话框中显示删除视图。最初没有选择任何项目。当用户单击确定按钮时,Delete Post 操作及其参数 selectedIds 为 NULL。没关系,但是如何向用户显示错误消息?
当我到达代码“return PartialView”时,我在视图中得到一个异常,我的 Model.DisplayList 是空的。
我知道我似乎在这里混合了两个问题,但我想一个可以解决另一个问题......
删除操作:
[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() });
然后它可以工作,但我不想为此再次访问数据库。