我的应用程序基本上是一个调查/测试生成器,可根据需要输出各种问题类型。我有一个针对每种问题的模型。但是,我的验证不起作用(客户端是我要求的,我可以做服务器端)。
我的一些代码:
@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>
答案 0 :(得分:0)
确保web.config中的ClientValidationEnabled和UnobtrusiveJavaScriptEnabled设置为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>