C# Html.ValidationMessageFor输出错误消息时编辑输入字段

C# Html.ValidationMessageFor输出错误消息时编辑输入字段,c#,jquery,asp.net-mvc,visual-studio,umbraco,C#,Jquery,Asp.net Mvc,Visual Studio,Umbraco,我在VisualStudio和MVC框架中使用C#/.NET 我有一个正在使用的表单,我能够让它在适当的时间输出正确的错误消息。我的问题是,当表单的输入字段没有填写或填写错误时,表单的输入字段应该用has error类突出显示红色。如果我使用常规表单标记,我可以这样做,但是因为它连接到一个Umbraco项目,所以我必须使用Html.EditorFor和Html.ValidationMessageFor 是否有一种方法(使用jQuery或修改现有代码)在Html.validationMessage

我在VisualStudio和MVC框架中使用C#/.NET

我有一个正在使用的表单,我能够让它在适当的时间输出正确的错误消息。我的问题是,当表单的输入字段没有填写或填写错误时,表单的输入字段应该用has error类突出显示红色。如果我使用常规表单标记,我可以这样做,但是因为它连接到一个Umbraco项目,所以我必须使用Html.EditorFor和Html.ValidationMessageFor

是否有一种方法(使用jQuery或修改现有代码)在Html.validationMessage上向Html.EditorFor字段添加一个类以决定它是否应该显示该消息

以下是我的部分观点:

<div class="name-field">
    <label>Name</label>
    @Html.EditorFor(m => m.Name, new { htmlAttributes = new { @class = "form-control", @id = "contact_name", @name = "contact_name", @placeholder = "Name" } })
    @if (@Html.ValidationMessageFor(model => model.Name) != null)
    {

        @Html.ValidationMessageFor(model => model.Name, null, new { @class = "contact-form-error-msg text-danger small-sized", @id = "contact-form-name-error-1", @style = "display:block;" })


    }
</div>
正如我所说,模型中显示的错误消息正确显示。我的问题是将has error类应用于Html.EditorFor字段,我感觉它需要jQuery;但是,我不确定如何访问jQuery块中的现有代码

多谢各位

编辑:我收到通知,我的问题可能与此处的问题重复()。经过一些修改,我找到了解决问题的办法

@if (!ViewData.ModelState.IsValidField("Name")) {
    <div class="name-field has-error">
        @Html.EditorFor(m => m.Name, new { htmlAttributes = new { @class = "form-control", @id = "contact_name", @name = "contact_name", @placeholder = "Name" } })
        @if (@Html.ValidationMessageFor(model => model.Name) != null)
        {
            @Html.ValidationMessageFor(model => model.Name, null, new { @class = "contact-form-error-msg text-danger small-sized", @id = "contact-form-name-error-1", @style = "display:block;" })
        }
    </div>
} else {
    <div class="name-field">
        @Html.EditorFor(m => m.Name, new { htmlAttributes = new { @class = "form-control", @id = "contact_name", @name = "contact_name", @placeholder = "Name" } })
    </div>
}
@if(!ViewData.ModelState.IsValidField(“名称”)){
@EditorFor(m=>m.Name,new{htmlAttributes=new{@class=“form control”、@id=“contact\u Name”、@Name=“contact\u Name”、@placeholder=“Name”}})
@if(@Html.ValidationMessageFor(model=>model.Name)!=null)
{
@Html.ValidationMessageFor(model=>model.Name,null,新{@class=“contact-form-error-msg text-danger-small-sized”,@id=“contact-form-Name-error-1”,@style=“display:block;”)
}
}否则{
@EditorFor(m=>m.Name,new{htmlAttributes=new{@class=“form control”、@id=“contact\u Name”、@Name=“contact\u Name”、@placeholder=“Name”}})
}

可能与@AlexKrupka重复感谢您的旗帜。我检查了一下,确实有所帮助,但这不是重复的。你会在我的编辑中看到为什么它不能完全解决我的问题:)啊,我的错,我道歉。经过进一步的测试,我意识到它是一个复制品。至少,我用另一个问题的代码找到了答案。非常感谢您的帮助:)
@if (!ViewData.ModelState.IsValidField("Name")) {
    <div class="name-field has-error">
        @Html.EditorFor(m => m.Name, new { htmlAttributes = new { @class = "form-control", @id = "contact_name", @name = "contact_name", @placeholder = "Name" } })
        @if (@Html.ValidationMessageFor(model => model.Name) != null)
        {
            @Html.ValidationMessageFor(model => model.Name, null, new { @class = "contact-form-error-msg text-danger small-sized", @id = "contact-form-name-error-1", @style = "display:block;" })
        }
    </div>
} else {
    <div class="name-field">
        @Html.EditorFor(m => m.Name, new { htmlAttributes = new { @class = "form-control", @id = "contact_name", @name = "contact_name", @placeholder = "Name" } })
    </div>
}