Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 将MVC1/xVal项目升级为MVC2,并与客户端验证兼容_Asp.net Mvc_Model View Controller_Asp.net Mvc 2_Xval_Client Side Validation - Fatal编程技术网

Asp.net mvc 将MVC1/xVal项目升级为MVC2,并与客户端验证兼容

Asp.net mvc 将MVC1/xVal项目升级为MVC2,并与客户端验证兼容,asp.net-mvc,model-view-controller,asp.net-mvc-2,xval,client-side-validation,Asp.net Mvc,Model View Controller,Asp.net Mvc 2,Xval,Client Side Validation,我目前正在这里寻找一个从MVC1迁移到MVC2的项目。我们使用xVal进行客户端验证 据我所知,我只需删除对xVal的引用,并替换为MVC2 EnableClientSideValidation,它就可以做到这一点。还需要什么吗 此外,由于xVal无法在客户端验证模型列表,MVC2+ClientSideValidation是否仍然如此?(我所说的“模型列表”是指在列表上进行验证) 例如: 控制器: public ActionResult Index() { Mod

我目前正在这里寻找一个从MVC1迁移到MVC2的项目。我们使用xVal进行客户端验证

据我所知,我只需删除对xVal的引用,并替换为MVC2 EnableClientSideValidation,它就可以做到这一点。还需要什么吗

此外,由于xVal无法在客户端验证模型列表,MVC2+ClientSideValidation是否仍然如此?(我所说的“模型列表”是指在
列表上进行验证

例如: 控制器:

    public ActionResult Index()
    {
        Models.Model1 model = new Models.Model1();
        model.Usernames = new List<Models.Model2>();

        model.Usernames.Add(new Models.Model2 {  });
        model.Usernames.Add(new Models.Model2 {  });
        model.Usernames.Add(new Models.Model2 {  });
        model.Usernames.Add(new Models.Model2 {  });

        return View(model);
    }
视图:




视图2:

<%= Html.EditorFor(f => f.Username) %>
<%= Html.ValidationMessageFor(a => a.Username)%>
f.Username)%%>
a、 用户名)%%>

这是一个POC,MVC2客户端验证失败,因为它通过字段id进行验证。

在那里,完成了,得到了T恤。希望我永远不会去那里——MVC2验证与XVAL的正确性是不一致的,只要您已经正确地实现了XVAL。此外,MVC3验证要做得好得多。因此,如果我从xVal开始,我会引导它与MVC3一起工作,MVC3是一个非常不同的野兽。

虽然我有点同意Wyatt在这里所说的,特别是关于MVC3的部分,但我一直在使用MVC2客户端验证,这并不是一个糟糕的体验

要回答您的问题,您需要执行以下操作: 1.在视图中包括MicrosoftJax.js和MicrosoftMvcValidation.js。 2.然后简单地打电话给助手


它应该能够获取您的DataAnnotation模型验证规则,并为您提供客户端验证,而无需付出太多努力。

您删除xVal引用的想法是正确的。我想应该是这样。我不确定你的第二个场景。很遗憾,知道MVC3只是RC对我们来说不是一个选项,因为我们需要坚如磐石的稳定开发。也许你可以给我指一些有用的资源,让从MVC1到MVC2再到MVC3的过渡尽可能轻松?我觉得是的——这是我对MVC前两个版本的错误堆栈如果它是在RC阶段,它可能是你应该反对的。我编辑了我的问题来澄清这个问题。。。客户端验证不会验证每个字段
class Model2 {  
[Required]
public string Username { get; set; }
}
    <% Html.EnableClientValidation(); %>

    <% using (Html.BeginForm()) { %> 

        <% foreach (var username in Model.Usernames) { %> 
            <% Html.RenderPartial("View2", username); %>
            <br /><br />
        <% } %>

        <input type="submit" />

    <% } %>
<%= Html.EditorFor(f => f.Username) %>
<%= Html.ValidationMessageFor(a => a.Username)%>