在过去的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验证库。
关于要寻找什么的任何想法?
答案 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
的希望这有用!
我的英语是游泳池(: