在Windows窗体应用程序中,我通常会使用代码MessageBox.Show("error!")
来通知用户数据验证错误,并且我知道您无法在asp.net应用程序中执行此操作。在对该问题进行一些基础研究之后,我得出结论,JQuery对话框可能是最接近消息框的东西。有什么其他的替代方法可以解决这个问题,JQuery对话框是处理这类问题的最佳方法吗?我是软件开发,mvc和JQuery的新手,我只是想知道最好的编程实践来处理这个问题。
目前,这是我控制器中的代码:
if (String.IsNullOrEmpty(dateSearchBegin) || String.IsNullOrEmpty(dateSearchEnd))
{
//string message = "Both date fields are required";
}
else
{
var dtFrom = DateTime.Parse(dateSearchBegin);
var dtTo = DateTime.Parse(dateSearchEnd);
return View(db.PurchaseOrders.Where(x => x.Date >= dtFrom && x.Date <= dtTo).OrderBy(i => i.Date).ToPagedList(page ?? 1, 15));
}
我想将string message
放入验证中,我该如何解决这个问题呢?
答案 0 :(得分:1)
您可以使用ModelState
添加自定义错误消息
if (String.IsNullOrEmpty(dateSearchBegin) || String.IsNullOrEmpty(dateSearchEnd))
{
ModelState.AddModelError("CustomError", "Both date fields are required");
}
结束在视图中显示:
@Html.ValidationMessage("CustomError")
答案 1 :(得分:0)
如果您要为模型对象添加验证,请查看Model Validation中的asp.net-mvc。
如果您正在寻找一种方法来通知用户来自控制器的某些消息,请查看ControllerBase.TempData
。它很好地处理了这个精确的场景。
作为旁注,我创建了一个基于nuget package的Bootstrap Notifications,它在Bootstrap中很好地包装了这个功能,并使您能够使用以下方法轻松地通过控制器通知用户:
this.AddNotification("You have errors because you did it wrong!", NotificationType.ERROR);
来自任何控制器的。
答案 2 :(得分:0)
使用Ajax将Post发布到Server,然后从Action返回JsonResult。您可以将文本/数字发送回客户端,您检查该客户端以检测服务器端是否未满足您的条件,然后在客户端浏览器上显示javascript警报。