0

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

据我了解,我只需要删除对 xVal 的引用并用 MVC2 EnableClientSideValidation 替换它就可以了。还需要什么吗?

此外,由于 xVal 无法在客户端验证模型列表,MVC2 + ClientSideValidation 仍然是这种情况吗?(我对“模型列表”的意思是对 a 进行验证List<TypeOfModel>

这方面的例子是:控制器:

    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);
    }

型号1:

class Model1 {  
public List<Model2> Usernames { get; set; }
}

型号2:

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" />

    <% } %>

视图2:

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

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

4

2 回答 2

0

去过那里,做到了,得到了T恤。并且希望我从未去过那里——坦率地说,一旦您正确实施了 xVal,MVC2 验证就无法与 xVal 相提并论。此外,MVC3 验证做得更好。所以,如果我要跳出 xVal,我会努力让它与 MVC3 一起工作,这是一个非常不同的野兽。

于 2011-01-10T17:37:32.563 回答
0

虽然我有点赞同 Wyatt 在这里所说的内容,尤其是关于 MVC3 的部分,但我一直在使用 MVC2 客户端验证,这并不是一次糟糕的体验。

要回答您的问题,您需要执行以下操作: 1. 在您的视图中包含 MicrosoftAjax.js 和 MicrosoftMvcValidation.js。2.然后简单的调用helper <%Html.EnableClientValidation(); %>

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

于 2011-01-10T19:22:18.327 回答