Asp.net mvc 将MVC1/xVal项目升级为MVC2,并与客户端验证兼容
我目前正在这里寻找一个从MVC1迁移到MVC2的项目。我们使用xVal进行客户端验证 据我所知,我只需删除对xVal的引用,并替换为MVC2 EnableClientSideValidation,它就可以做到这一点。还需要什么吗 此外,由于xVal无法在客户端验证模型列表,MVC2+ClientSideValidation是否仍然如此?(我所说的“模型列表”是指在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
列表上进行验证
)
例如:
控制器:
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)%>