我目前正在这里希望将一个项目从MVC1迁移到MVC2。我们正在使用XVAL进行客户端验证。

据我了解,我只需要删除对XVal的引用,然后替换为MVC2 EnableCleclientsideValidation,它应该可以解决问题。还需要还有其他需要吗?

另外,使用XVAL无法在客户端验证模型列表,MVC2 +客户端价化验证仍然是如此吗? (我的意思是“模型列表”是在对 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);
    }

Model1:

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

    <% } %>

View2:

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

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

有帮助吗?

解决方案

去过那里,完成了T恤。希望我从未去过那里 - 坦率地说,MVC2验证一旦您正确实施了XVAL,就不会与XVAL相提并论。此外,MVC3验证做得更好。因此,如果我跳下XVAL,我会向矢量介绍它与MVC3合作,这是一个截然不同的野兽。

其他提示

尽管我在某种程度上介绍了怀亚特在这里所说的,尤其是关于MVC3的部分,但是我一直在使用MVC2客户端验证,但这并不是一个不好的经历。

要回答您的问题,您需要执行以下操作:1。在视图中包括Microsoftajax.js和Microsoftmvcvalidation.js。 2.然后只需调用助手<%html.enableclientvalidation(); %>

它应该拾取您的数据通道模型验证规则,并在不大量努力的情况下为您提供客户端验证。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top