C# 在razor引擎中对html控件进行表单验证

C# 在razor引擎中对html控件进行表单验证,c#,asp.net-mvc,razor,validation,C#,Asp.net Mvc,Razor,Validation,我一直面临着在html控件上进行表单验证的问题,有谁能指导我如何解决这个问题 something.cshtml中的我的HTML字段 <input type="text" id="AccidentDate" name="AccidentDate" /> @Html.ValidationMessage("AccidentDate") 请注意validationMessage确实会在该输入字段前面以*的形式引发错误,但我的要求是将该输入字段突出显示为红色 最重要的是,如果我使用: @Ht

我一直面临着在html控件上进行表单验证的问题,有谁能指导我如何解决这个问题

something.cshtml中的我的HTML字段

<input type="text" id="AccidentDate" name="AccidentDate" />
@Html.ValidationMessage("AccidentDate")
请注意validationMessage确实会在该输入字段前面以*的形式引发错误,但我的要求是将该输入字段突出显示为红色

最重要的是,如果我使用:
@Html.TextBox(“acdentDate”,Model.acdentDate)它工作得很好,但使用它不是我的要求

最后,如果引发验证消息,我希望通过任何其他方式使html输入字段变为红色


任何帮助都将不胜感激。

好的,所以我想我应该试着帮忙,而不仅仅是评论。所以我猜你想用

所以如果你这样做了

@Html.TextBox("AccidentDate", Model.AccidentDate);
查看源代码时,您将看到如下内容:

<input data-val="true" data-val-required="The AccidentDate field is required." 
   id="AccidentDate" name="AccidentDate" type="text" value="">
Css类

应该应用Css类。相关代码如下:

function onError(error, inputElement) {  // 'this' is the form element
        var container = $(this).find("[data-valmsg-for='" + escapeAttributeValue(inputElement[0].name) + "']"),
            replace = $.parseJSON(container.attr("data-valmsg-replace")) !== false;

        container.removeClass("field-validation-valid").addClass("field-validation-error");
        error.data("unobtrusiveContainer", container);

        if (replace) {
            container.empty();
            error.removeClass("input-validation-error").appendTo(container);
        }
        else {
            error.hide();
        }
    }

jquery.validate.unobtrusive.js
中。确认您引用了这个js文件,并查看上面的代码是否命中?

您需要在输入上重新创建所有不引人注目的验证属性。放入@Html.TextBox(“AccidentDate”,Model.AccidentDate);,查看源代码、剪切和粘贴?属性也将取决于您在模型上放置的验证属性,那么,你想验证什么呢?我猜你想使用不引人注目的验证引擎??我只需要突出显示文本框,以防输入字段为空。如果引发验证消息,那么是否有任何调整来放置错误css?我已经将这两个属性放在输入字段中,但它没有heightlight输入字段:原因是它仍然不会对其产生任何影响,但会像前面一样发出验证消息。进一步查看详细信息,我了解到,如果出现错误,不会将“字段验证错误”css放在该字段上,这就是原因。奇怪的是,执行此操作的代码都应该包含在unobtrusive.js脚本中。您是否使用
@using(Html.BeginForm())
添加表单??包括以及BeginInform必须是OneError方法中的某些内容,但您必须对其进行调试,因为我没有想法。
<input type="text" id="AccidentDate" name="AccidentDate" 
   data-val="true" data-val-required="The AccidentDate field is required." />
@Html.ValidationMessage("AccidentDate")
function onError(error, inputElement) {  // 'this' is the form element
        var container = $(this).find("[data-valmsg-for='" + escapeAttributeValue(inputElement[0].name) + "']"),
            replace = $.parseJSON(container.attr("data-valmsg-replace")) !== false;

        container.removeClass("field-validation-valid").addClass("field-validation-error");
        error.data("unobtrusiveContainer", container);

        if (replace) {
            container.empty();
            error.removeClass("input-validation-error").appendTo(container);
        }
        else {
            error.hide();
        }
    }