xVal客户端中的前缀导致ModelBinder问题

时间:2009-12-02 20:10:28

标签: asp.net asp.net-mvc validation xval

在过去的24小时里,我非常迷恋xVal。我把它介绍到我的个人网站上,它就像一个冠军 - 我无法相信它是多么容易实现。我正在使用ASP.Net MVC,xVal 1.0和DataAnnotations验证器。

现在尝试将相同的代码放入工作应用程序中,我看到了不同的行为。我有足够的逻辑知道我可能有不同的东西,但我看不出它是什么。

为了使客户端验证工作,我在我的字段中添加了前缀“message”,如下所示:

<%= Html.TextBox("message.Subject", Model.Subject, new { @class = "contact-input required" })%>

等等。我的控制器有这个逻辑:

[AcceptVerbs(HttpVerbs.Post)]
    public ActionResult Index(Message message)
    {
        try
        { // some code here

现在,自动化,ModelBinder实际上正在填充我的对象。这很棒。

问题是我的工作项目,我正在尝试做同样的事情 - 客户端验证工作得很好,但ModelBinder没有填充我的模型。我知道这是一个前缀问题,因为当我删除前缀时,没关系。

脚本的唯一区别是工作项目正在使用缩小的jquery验证库。

关于要寻找什么的任何想法?

2 个答案:

答案 0 :(得分:0)

您不需要任何前缀来使xVal正常工作,但您的输入需要使用相同的名称,以便您的ModelBinder正常工作。因此,只需将DataAnnotations添加到要绑定到视图的类的属性,并调用xVal html帮助程序“ClientSideValidation”,还需要添加对xval,script:jquery,jquery.validate,xval的引用。验证......

答案 1 :(得分:0)

[AcceptVerbs(HttpVerbs.Post)] public ActionResult Index([Bind(Prefix = "Message")]Message message)

没有xval的商务,这是关于asp.net mvc ModelBinder

希望这有用!

我的英语是游泳池(: