asp.net-mvc – 使用ASP.NET MVC,如何在外部控制器上显示错误?
发布时间:2020-12-16 03:24:46 所属栏目:asp.Net 来源:网络整理
导读:我正在尝试使用以下代码在我的代码中的任何位置轻松显示错误: @Html.ValidationSummary("",new { @class = "text-danger" }) 在MVC之前,我用过: ValidationError.Display("My error message"); 我的ValidationError类看起来像这样: public class Validati
我正在尝试使用以下代码在我的代码中的任何位置轻松显示错误:
@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.AddModelError("","My error message"); 解决方法
1.您可以通过ViewContext.ViewData.ModelState访问它.然后用
@if (!ViewContext.ViewData.ModelState.IsValid) { <div>There are some errors</div> } 要么 ViewData.ModelState.IsValidField("NameOfInput") 获取输入列表: var errors = ViewData.ModelState.Where(n => n.Value.Errors.Count > 0).ToList(); 你可以像这样传递你的模型状态: public class MyClass{ public static void errorMessage(ModelStateDictionary ModelState) { if (something) ModelState.AddModelError("","Error Message"); } } 在控制器中使用: MyClass.errorMessage(ModelState); 在视图中使用: MyClass.errorMessage(ViewContext.ViewData.ModelState.IsValid); 3. ModelState通过ActionFilter public class ValidateModelAttribute : ActionFilterAttribute { public override void OnActionExecuting(ActionExecutingContext filterContext) { if (filterContext.Controller.ViewData.ModelState.IsValid) { //Do Something } } } 您可以从this和this链接获得更多帮助. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net-mvc – ASP.NET MVC:获取RouteTable路由的URL
- 实体框架 – ASP.NET Identity Model First因重命名的AspNe
- asp.net-mvc – 我可以传递一个匿名类型到我的ASP.NET MVC视
- 如何在asp.net中获取服务器/网站的IP地址?
- asp.net-mvc – 升级到Visual Studio 2015会使intellisense
- asp.net – 会话状态在此上下文中不可用
- 如何以编程方式在ASP.NET MVC中显示/隐藏Razor View中的一个
- asp.net-mvc – Html.LabelFor语句不显示为赋值
- ASP.NET vs. Silverlight
- asp.net-mvc – 使用Razor在ASP.NET MVC 4中防止@ Html.Lab
推荐文章
站长推荐
热点阅读