在MVC中对Razor View进行验证的问题

时间:2012-01-07 12:00:30

标签: asp.net-mvc-3 razor

我正在使用MVC3构建向导步骤演示应用程序并使用razor视图引擎作为初级级别。

我在隐藏和放弃时遇到了验证问题。通过javascript显示控制权。

请按以下方式查看我的代码部分

<div class="editor-field">
                @Html.EditorFor(model => model.CheckName2)
                @Html.ValidationMessageFor(model => model.CheckName2)
            </div>

我的javascript功能如下,隐藏&amp;在某种情况下显示

// attach nextStep button handler       
        $("#next-step").click(function () {

            var $step = $(".wizard-step:visible"); // get current step

            //check if URL2 is having any content        
            var val = $("#URL2").val();
            if (val == "") {
                $("#CheckName2").hide();
                //want to remove validation here

            }
            else {

                $("#CheckName2").show();
                //want to add validation here

            }
 var validator = $("form").validate(); // obtain validator
        var anyError = false;
        $step.find("input").each(function () {


            if (!validator.element(this)) { // validate every input element inside this step

                anyError = true;
            }


        });

        if (anyError)
            return false; // exit if any error found

我如何在这里处理验证?

提前感谢。

1 个答案:

答案 0 :(得分:1)

使用$(“#IdOfFormYouEdit”)强制验证表单.validate();或$(“#IdOfTextbox”)。validate();仅验证一个元素。

如果已在视图模型类中放置验证属性,则可以执行此操作。如果不这样做,可以通过添加data-val属性在元素上添加验证。例如:

<input type="text" data-val="true" data-val-number="The field someField must be a number." data-val-required="SourceId required" />