1

在过去的 24 小时里,我非常迷恋 xVal。我把它引入了我的个人网站,它就像一个冠军——我无法相信它是多么容易开始。我正在使用 ASP.Net MVC、xVal 1.0 和 DataAnnotations 验证器。

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

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

<%= 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 验证库。

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

4

2 回答 2

0

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

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

希望对你有帮助!</p>

我的英语是台球(:

于 2010-11-03T09:35:58.123 回答
0

你不需要任何前缀来使 xVal 工作,但你需要为你的输入使用相同的名称,这样你的 ModelBinder 才能正常工作。因此,只需将 DataAnnotations 添加到要绑定到视图的类的属性中并调用 xVal html 帮助程序“ClientSideValidation”,还需要添加对 xval 的引用,脚本:jquery、jquery.validate、xval。证实 ...

于 2009-12-02T20:19:08.443 回答