我想以及客戶端驗證作爲服務器端驗證。我意識到這一點,如下所示:Asp.Net MVC EnableClientValidation不起作用
型號:(該模型有一個DataModel中(DBML),其中包含測試類)
namespace MyProject.TestProject
{
[MetadataType(typeof(TestMetaData))]
public partial class Test
{
}
public class TestMetaData
{
[Required(ErrorMessage="Please enter a name.")]
[StringLength(50)]
public string Name { get; set; }
}
}
控制器是沒什麼特別的。
的觀點:
<% Html.EnableClientValidation(); %>
<% using (Ajax.BeginForm("Index", "Test", FormMethod.Post,
new AjaxOptions {}, new { enctype = "multipart/form-data" }))
{%>
<%= Html.AntiForgeryToken()%>
<fieldset>
<legend>Widget Omschrijving</legend>
<div>
<%= Html.LabelFor(Model => Model.Name) %>
<%= Html.TextBoxFor(Model => Model.Name) %>
<%= Html.ValidationMessageFor(Model => Model.Name) %>
</div>
</fieldset>
<div>
<input type="submit" value="Save" />
</div>
<% } %>
爲了這個,我加入到js文件還引用了所有工作:
<script src="../../Scripts/MicrosoftAjax.js" type="text/javascript"></script>
<script src="../../Scripts/MicrosoftMvcAjax.js" type="text/javascript"></script>
<script src="../../Scripts/MicrosoftMvcValidation.js" type="text/javascript"></script>
<script src="../../Scripts/jquery-1.4.1.min.js" type="text/javascript"></script>
最終還是工作,但它不工作100%: 它確實按下按鈕後將進行無頁面刷新的驗證。 它也做「一半」客戶端驗證。只有當您在文本框中鍵入一些文本,然後退格鍵入的文本。出現客戶端驗證。但是,當我通過在控件之間點擊進行嘗試時,沒有客戶端驗證。
我想念一些參考資料嗎? (我使用Asp.Net MVC 2 RTM)
[這裏](http://pastebin.com/685bHTHH)是如何驗證包含在我的頁面。但是,客戶端驗證完全不起作用,您是否看到任何問題? – Shimmy 2013-07-11 05:27:03