【问题标题】:Asp.net MVC3 validationAsp.net MVC3 验证
【发布时间】:2011-10-01 06:58:46
【问题描述】:

我有 asp.net MVC3 应用程序,其中通过在模型中添加验证属性来完成验证。 例如

[Required(ErrorMessage = "Required field")] [Display(Name = "SurveyName")] [DataType(DataType.Text)] public string SurveyName {get;set;}

然后我在视图中创建文本框

@Html.TextBoxFor(model => model.SurveyQuestions[i].SurveyName)

并添加验证消息

@Html.ValidationMessageFor(model => model.SurveyQuestions[i].SurveyName)

这里的场景是我创建了 5 个带有 for 循环的文本框,具有相同的模型属性 Surveyname,我只想验证第一个文本框,而不验证文本框的其余部分。

这可能吗?

编辑:

我将下面的代码用于其余的文本框,但验证也发生在这些字段上。

@Html.TextBox("SurveyQuestions[" + i + "].Question", @Model.SurveyQuestions[i].Question)

【问题讨论】:

    标签: asp.net-mvc asp.net-mvc-3 validation


    【解决方案1】:

    所以最后我得到了解决方案,尽管我认为这不是正确的方法。但它解决了我的问题。 我为解决问题而采取的步骤 -

    1. 我观察到存在验证错误的输入字段的 Html。输入字段将具有附加属性,例如“data-val-required”和“data-val”
    2. 然后我将这些字段添加到需要验证的文本框中。
    3. 然后我为带有验证消息的文本框添加了 Html.Validation()。

    我的最终代码如下所示

                 @if (i == 0)
                    {
                        @Html.TextBoxFor(model => model.SurveyQuestions[i].Question, new Dictionary<string, object> { { "data-val-required", "required" }, { "data-val", "true" },  { "title", "Question " + (i + 1) }, {"class","QuestionTextBox"} })           
                        <br />
                        @Html.ValidationMessage("SurveyQuestions[0].Question", "At least one question is required.")
                    }
                    else
                    { 
                        @Html.TextBoxFor(model => model.SurveyQuestions[i].Question, new { @class = "QuestionTextBox", @title = "Question " + (i + 1) })    
                    }
    

    【讨论】:

      【解决方案2】:

      您需要像以前一样使用以下代码创建第一个:

      @Html.TextBoxFor(model => model.SurveyQuestions[i].SurveyName)
      

      然后,其余部分使用@Html.TextBox。您只需对模型属性的 id 和 name 属性进行硬编码。

      【讨论】:

      • 我试过这个解决方案,但没有奏效。请参阅编辑部分了解我所做的代码更改。
      猜你喜欢
      • 2012-08-08
      • 2011-08-26
      • 2012-01-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多