我刚刚完成了我的窗体的可视化逻辑,现在我想要使用asp.net mvc 3提供的客户端验证。然而,即使我正在追踪一些例子,我也无法使其发挥作用,我不知道可能是什么原因。客户端验证从哪个使用部分视图
这里是我的主视图:
@model List<DataAccess.MCS_DocumentFields>
@{
ViewBag.Title = "Documents";
}
<div id="drawForm">
@using (Html.BeginForm("RecieveDataFromDocument", "Forms", FormMethod.Post))
{
@Html.ValidationSummary(true)
<table border="1">
<colgroup>
<col span="1" style="width: 10%;" />
<col span="1" style="width: 40%;" />
<col span="1" style="width: 25%;" />
<col span="1" style="width: 25%;" />
</colgroup>
@Html.Partial("_PartialHeader", Model)
@Html.Partial("_PartialDrawing", Model)
@Html.Partial("_PartialBody", Model)
@Html.Partial("_PartialFooter", Model)
</table>
if (ViewBag.Status == 1)
{
<button type="submit">Save</button>
}
else
{
@Html.ActionLink("Back", "Index")
}
}
</div>
没有太多的实际这里。大部分逻辑都在我的偏见中。我使用数据注释,所以我认为默认情况下会有一些客户端验证,但似乎并非如此。我所做的是确保我有
<appSettings>
<add key="UnobtrusiveJavaScriptEnabled" value="true" />
</appSettings>
添加到我的web.config。在我看来,你可以看到我已经添加了
@Html.ValidationSummary(true)
不知道这是否正确,但它在那里。此外,在我是从那里寻找的例子是:
<div class="editor-label">
@Html.LabelFor(model => model.Name)
</div>
<div class="editor-field">
@Html.TextBoxFor(model => model.Name)
@Html.ValidationMessageFor(model => model.Name)
</div>
我没有这样<div>
标签和这样的类名但是当我开始在viewsource我的应用程序可以看到每个输入此:
Name comes from DB
<input data-val="true" data-val-required="The FieldValue field is required." name="[4].FieldValue" type="hidden" value="Name comes from DB" />
我认为这足以让客户端验证发生。但是,因为我没有得到任何我在我的部分观点一个仅增加了测试以下:
<div class="editor-label">
@Html.DisplayFor(x => Model[i].QuestionText)
</div>
<div class="editor-field">
@Html.TextBox("datepicker", "", new { @class = "datepicker" })
@Html.ValidationMessageFor(x => Model[i].QuestionText)
</div>
@Html.HiddenFor(x => Model[i].Id)
//...some code...
<div class="editor-field">
@Html.EditorFor(x => Model[i].FieldValue)
@Html.ValidationMessageFor(x => Model[i].FieldValue)
</div>
@Html.HiddenFor(x => Model[i].Id)
//...more code..
但即使是这两个领域在验证失败时不会生成错误。所以我想我要么错过了什么,要么我做错了什么。我怀疑这种验证是否以这种方式发挥作用 - 部分?
是否定义限制 最好的问候/属性上的模型? – Guanxi
我只加[我需要]留下一些字段空。我添加了更多的限制,但没有任何更改 – Leron
您是否包含了验证所需的js文件? – Guanxi