简体   繁体   English

如何重新格式化ASP.NET MVC5错误消息以仅显示C#中的第一条消息

[英]How can I reformat my ASP.NET MVC5 error messages to show only the first message in C#

I have the following code that I think will show me each of the errors in my model: 我有以下代码,我认为它将向我展示模型中的每个错误:

@if (!ViewData.ModelState.IsValid)
{
    <ul>
    @foreach (string key in ViewData.ModelState.Keys)
    {
        @foreach (var error in ViewData.ModelState[key].Errors)
        {
            <li>@error.ErrorMessage</li>
        }
    }
    </ul>
}

The code is C# embedded inside a web page. 该代码是C#嵌入在网页内。 Can someone tell me how I could just report the first message and have this reported in a <span> . 有人可以告诉我如何报告第一条消息并将其报告在<span>

@if (!ViewData.ModelState.IsValid)
{
    <span>
        @ViewData.ModelState.First(x => x.Value.Errors.Any()).Value.Errors.First().ErrorMessage
    </span>
}

Of course you could write a custom HTML helper that will do this job instead of ending with such LINQ queries in your views: 当然,您可以编写一个自定义HTML帮助程序来完成此工作,而不是在视图中以此类LINQ查询结尾:

@Html.FirstModelError()

and the helper implementation: 和帮助程序的实现:

public static class HtmlHelpers
{
    public static IHtmlString FirstModelError(this HtmlHelper html)
    {
        var modelState = html.ViewData.ModelState;
        if (modelState.IsValid)
        {
            return MvcHtmlString.Empty;
        }

        var span = new TagBuilder("span");
        string errorMessage = modelState
            .First(x => x.Value.Errors.Any())
            .Value
            .Errors
            .First()
            .ErrorMessage;

        span.SetInnerText(errorMessage);
        return new HtmlString(span.ToString());
    }
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 ASP.NET MVC5在视图内的标签内显示异常错误消息可能吗? - ASP.NET MVC5 show exceptions error message in a label within a view possible? 使用ASP.NET MVC5在C#中将主键包含为类的属性时 - While Including Primary Keys as a property of my classes in C# using ASP.NET MVC5 如何在C#中使用ASP.NET MVC中的控制器解决集合错误? - How do I resolve collection error with my controller in ASP.NET MVC in C#? 关于Ajax-Jquery的成功如何在ASP.NET MVC5 C#中提交Modal表单后如何替换或附加表的单元格值 - On the success of Ajax-Jquery how can I Replace or Append the cell values of table after the submission of Modal form in ASP.NET MVC5 C# 获取IEnumerable错误:CS1061不包含C#ASP.NET MVC5 - Getting IEnumerable Error: CS1061 does not contain C# ASP.NET MVC5 限制按钮可以被按下的次数-C#ASP.NET MVC5 JavaScript - Limit the number of times a button can be pressed - C# ASP.NET MVC5 JavaScript C# ASP.NET:使用验证显示错误消息 - C# ASP.NET : show an error message using validations 如何在每个页面的第一点击上提高ASP.NET MVC5应用程序的性能? - How do I improve ASP.NET MVC5 application performance on each page's first hit? 如何在asp.net mvc3中显示错误消息 - How to show error message in asp.net mvc3 如何将C#MVC5 Global.asax迁移到ASP.NET Core Startup.cs - How to migrate C# MVC5 Global.asax to ASP.NET Core Startup.cs
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM