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

本文关键字:MVC Web 应用程序 NET 消息 ASP | 更新日期: 2023-09-27 18:18:53

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

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

您可以使用ModelState添加自定义错误消息

if (String.IsNullOrEmpty(dateSearchBegin) || String.IsNullOrEmpty(dateSearchEnd))
 {
   ModelState.AddModelError("CustomError", "Both date fields are required");
 }

结束显示:

@Html.ValidationMessage("CustomError")

如果你想在模型对象中添加验证,请查看asp.net-mvc中的模型验证。


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

作为附带说明,我创建了一个nuget包,基于Bootstrap Notifications,它在Bootstrap中很好地包装了这个功能,并使您能够轻松地从控制器通知用户,使用:
this.AddNotification("You have errors because you did it wrong!", NotificationType.ERROR);

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