Asp.net mvc 如何在ValidationSummary中显示错误消息,并仅在属性级别显示*

Asp.net mvc 如何在ValidationSummary中显示错误消息,并仅在属性级别显示*,asp.net-mvc,Asp.net Mvc,这是财产 [Required(ErrorMessage = "Device Name is required")] public string DeviceName { get; set; } 我希望具有与WebForm中相同的效果,即您可以决定在ValidationSummary中显示错误消息,而只需在属性级别显示* 我尝试使用true和false来处理此问题,但错误仍显示在属性级别: @Html.ValidationSummary(false, "", new { @class = "te

这是财产

[Required(ErrorMessage = "Device Name is required")]
public string DeviceName { get; set; }
我希望具有与WebForm中相同的效果,即您可以决定在ValidationSummary中显示错误消息,而只需在属性级别显示
*

我尝试使用truefalse来处理此问题,但错误仍显示在属性级别:

@Html.ValidationSummary(false, "", new { @class = "text-danger" })  
另外,尝试在引号之间插入一个
*
,但没有成功

@Html.ValidationMessageFor(model => model.DeviceName, "", new { @class = "text-danger" })

感谢您的帮助

能否尝试为方法创建自定义的
验证消息。您应该确保在System.Web.Mvc.Html命名空间中声明静态帮助器类

public static class Validator
{
    public static MvcHtmlString YourValidationMessageFor<TModel, TProperty>(this HtmlHelper<TModel> helper, Expression<Func<TModel, TProperty>> expression)
    {
        TagBuilder span = new TagBuilder("span");
        span.InnerHtml = "*"
        span.AddCssClass("error-box");

        return MvcHtmlString.Create(span.ToString(TagRenderMode.Normal));
    }
}

// html
// displays all validation errors as a summary
@Html.ValidationSummary(false, "", new { @class = "text-danger" })  

// displays "*" for all field validations underneath input
@Html.YourValidationMessageFor(model => model.DeviceName)
公共静态类验证程序
{
公共静态MvcHtmlString YourValidationMessageFor(此HtmlHelper,表达式)
{
标记生成器span=新标记生成器(“span”);
span.InnerHtml=“*”
span.AddCssClass(“错误框”);
返回MvcHtmlString.Create(span.ToString(TagRenderMode.Normal));
}
}
//html
//将所有验证错误显示为摘要
@Html.ValidationSummary(false,“,new{@class=“text danger”})
//为输入下的所有字段验证显示“*”
@Html.YourValidationMessageFor(model=>model.DeviceName)

您是否试图在摘要中而不是在inputYes下面显示所有验证错误。就像在Webforms中一样。原因是要显示的字段太多。这就是为什么,如果出现问题,越容易阅读错误信息,并立即知道该去哪里。否则,在每个字段旁边显示消息将影响布局,并强制用户查找错误的位置。您是否尝试使用自定义html方法?此帮助程序的作用是即使在未提交页面时,也在页面上显示星号。@Richard77是否尝试过?提交表单后,它应该显示错误消息加载place时,它会显示一个星号。我没有等待页面发回。我在方法中放置了一个断点。这个
helper方法不支持首先检查属性是否是标记所有属性(或类似属性)的字典的一部分吗?我想如果有办法访问
ModelState
字典并验证属性是否是字典的一部分,决定是否显示星号会更容易。@Richard77您可以使用if(ViewData.modelstate.IsValidField(“FIELD_NAME”))检查视图中的modelstate,然后根据此控件解析星号