ASP.NET(MVC)Web应用程序中的消息框

时间:2014-08-19 16:54:21

标签: c# jquery asp.net-mvc validation

在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放入验证中,我该如何解决这个问题呢?

3 个答案:

答案 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中的


如果您正在寻找一种方法来通知用户来自控制器的某些消息,请查看ControllerBase.TempData。它很好地处理了这个精确的场景。

作为旁注,我创建了一个基于nuget packageBootstrap Notifications,它在Bootstrap中很好地包装了这个功能,并使您能够使用以下方法轻松地通过控制器通知用户:

this.AddNotification("You have errors because you did it wrong!", NotificationType.ERROR);
来自任何控制器的

答案 2 :(得分:0)

使用Ajax将Post发布到Server,然后从Action返回JsonResult。您可以将文本/数字发送回客户端,您检查该客户端以检测服务器端是否未满足您的条件,然后在客户端浏览器上显示javascript警报。