Asp.net MVC客户端验证究竟是如何工作的?
我使用了MVC MVC 2.0客户端验证,但它并没有按预期工作。现在我正试图找出我做错了什么。 它是如何工作的? 我已提交此表格:Asp.net MVC客户端验证究竟是如何工作的?,asp.net,asp.net-mvc,validation,client-side,Asp.net,Asp.net Mvc,Validation,Client Side,我使用了MVC MVC 2.0客户端验证,但它并没有按预期工作。现在我正试图找出我做错了什么。 它是如何工作的? 我已提交此表格: <form method="post" action="/Sprint/Edit/68d4886b-a86a-4f0b-b713-39219febddf3"> <fieldset> <legend>Sprint</legend> <table&
<form method="post" action="/Sprint/Edit/68d4886b-a86a-4f0b-b713-39219febddf3">
<fieldset>
<legend>Sprint</legend>
<table>
<tbody><tr>
<td><label for="sprint_Title">Title</label></td>
<td><input type="text" value="Wichtige Private Erledigungen" name="sprint.Title" id="sprint_Title" class="input-box t-input"></td>
<td><span class="error"><span id="sprint_Title_validationMessage" class="field-validation-valid"></span></span></td>
</tr>
<tr>
<td><label for="sprint_Date">Date</label></td>
<td>
<div id="sprint_Date" class="date-picker t-input t-widget t-datepicker"><input value="12.05.2010" name="sprint.Date" id="sprint_Date-input" class="t-input" autocomplete="off"><a title="Open the calendar" tabindex="-1" href="#" class="t-link t-icon t-icon-calendar">select date</a></div>
</td>
<td><span class="error"><span id="sprint_Date_validationMessage" class="field-validation-valid"></span></span></td>
</tr>
<tr>
<td><label for="sprint_Description">Description</label></td>
<td><textarea rows="10" name="sprint.Description" id="sprint_Description" cols="80" class="t-input">dsfs1</textarea></td>
<td><span class="error"><span id="sprint_Description_validationMessage" class="field-validation-valid"></span></span></td>
</tr>
</tbody></table>
</fieldset>
<input type="submit" value="Submit" name="Submit" id="Submit" class="t-button t-state-default">
</form>
冲刺
标题
日期
描述
dsfs1
这个脚本被呈现为:
<script type="text/javascript">
//<![CDATA[
if (!window.mvcClientValidationMetadata) { window.mvcClientValidationMetadata = []; }
window.mvcClientValidationMetadata.push({"Fields":[{"FieldName":"sprint.Title","ReplaceValidationMessageContents":true,"ValidationMessageId":"sprint_Title_validationMessage","ValidationRules":[{"ErrorMessage":"Title is required.","ValidationParameters":{},"ValidationType":"required"}]},{"FieldName":"sprint.Date","ReplaceValidationMessageContents":true,"ValidationMessageId":"sprint_Date_validationMessage","ValidationRules":[{"ErrorMessage":"Das Feld \"Date\" ist erforderlich.","ValidationParameters":{},"ValidationType":"required"}]},{"FieldName":"sprint.Description","ReplaceValidationMessageContents":true,"ValidationMessageId":"sprint_Description_validationMessage","ValidationRules":[]}],"FormId":null,"ReplaceValidationSummary":false});
//]]>
</script>
//
但令我惊讶的是,断点只在页面加载时停止。我认为如果字段是选项卡式的,也应该是这样的?至少,在我按下post按钮之后
为什么客户端验证对我不起作用?这只是设置处理程序,在提交表单时,或者在字段之间进行制表时,它实际上不会出现在这一行 在失去焦点和/或表单提交时,您将得到验证错误,但是如果页面上有其他javascript错误,则可能导致验证失败 此外,请确保您在标头中引用了所需的javascript文件:
MicrosoftAjax.js
MicrosoftMvcValidation.js