【发布时间】:2017-05-07 14:42:29
【问题描述】:
我正在尝试在我的代码中的任何位置轻松地在我的视图中显示错误:
@Html.ValidationSummary("", new { @class = "text-danger" })
在 MVC 之前,我使用过:
ValidationError.Display("My error message");
我的ValidationError 类看起来像这样:
public class ValidationError : IValidator
{
private ValidationError(string message)
{
ErrorMessage = message;
IsValid = false;
}
public string ErrorMessage { get; set; }
public bool IsValid { get; set; }
public void Validate()
{
// no action required
}
public static void Display(string message)
{
// here is the only part I would like to change ideally
var currentPage = HttpContext.Current.Handler as Page;
currentPage.Validators.Add(new ValidationError(message));
}
}
现在使用 MVC,要添加错误,我不能使用 currentPage.Validators。
我需要使用ModelState,但我的问题是当我不在控制器中时无法访问ModelState。我尝试通过HttpContext 访问控制器或ModelState,但我还没有找到方法。有什么想法吗?
ModelState.AddModelError("", "My error message");
【问题讨论】:
-
你有能力修改你的模型和视图吗?
-
对视图来说是的,但我不想修改模型,我认为解决方案会变得过于“繁重/复杂”
-
那么你能修改ValidationError类吗?顺便说一句,IValidator 来自哪里?
-
是的,我可以,我的目标是理想情况下只修改 ValidationError 类,IValidator 来自使用 System.Web.UI;
-
我认为您的问题需要一些更新 :) 您如何在 ASP.Net MVC 中实际使用 ValidationError ?向我们展示一个使用它的操作。是否有必要总是 ValidationError 或者我们可以摆脱它?
标签: asp.net-mvc