Col*_*lin 14 validation client-side-validation data-annotations asp.net-mvc-2
我希望客户端验证与服务器端验证一样好.我意识到这一点如下:
型号:(该模型有一个包含Test类的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)
更改加载的javascript的顺序...
<script src="../../Scripts/jquery-1.4.1.min.js" type="text/javascript"></script>
<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>
有完全相同的问题,这清除了我...
| 归档时间: | 
 | 
| 查看次数: | 11721 次 | 
| 最近记录: |