0

我的应用程序基本上是一个调查/测试生成器,可以根据需要输出各种问题类型。对于每种类型的问题,我都有一个模型。但是,我的验证不起作用(我只要求在客户端,我可以在服务器端进行)。

我的一些代码:

@model IEnumerable<fsForms.Models.abstractQuestion>

@using(Html.BeginForm())
{
@Html.ValidationSummary(true)
foreach(var item in Model) {
    switch(item.questionType){
    case 1:
        {
            if(item.isRequired)
            {
                var txtReq = (fsForms.Models.FreeTextReq)item;
                @Html.EditorFor(model=> txtReq.textboxVal);
                @Html.ValidatorMessageFor(model=>txtReq.textboxVal);
            }
        }
    }
}
}

我的模型很简单:

public class FreeTextReq:abstractQuestion
{
    [Required(ErrorMessage="This field is required")]
    public String textboxVal;
}

感谢您的任何意见。

PS:生成的 HTML 如下所示:

<body>
<form action="blahblahblah" method="post">
<input class="text-box single-line" id="txtReq_textboxVal" type="text" value="" />
<span class="field-validation-valid" data-valmsg-for="txtReq.textboxVal" data-valmsg-replace="true"></span>
<input type="submit" value="submit info">
</form>

////////Here follow all my scripts (including jQuery validation scripts) ////////////
</body>
4

1 回答 1

0

确保 ClientValidationEnabled 和 UnobtrusiveJavaScriptEnabled 在 web.config 中设置为 true。

<appSettings>
  <add key="ClientValidationEnabled" value="true" />
  <add key="UnobtrusiveJavaScriptEnabled" value="true" />
</appSettings>

您还需要包含 jquery 验证脚本

<script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script>
于 2013-09-16T18:57:33.350 回答