我正在试验不显眼的客户端验证,并一直在努力让它在我的方案中工作。MVC3客户端验证使用ViewModels
我的主要问题是我的视图有一个强类型的ViewModel。这个ViewModel包含了几个用于填充下拉列表的集合,并有一个额外的属性(我们称之为Person),这是我希望表单编辑的实际对象。
我的控制器操作处理帖子期望得到一个Person对象而不是整个ViewModel张贴。所以,我一直无法使用:
@Html.TextBoxFor(m => m.Person.Name)
,因为我需要输入控制有一个名称=“名称”,而不是“Person.Name” 我可以用
@Html.TextBox("Name", m.Person.Name)
更正此
但是,最终的输入控件缺少客户端验证需要的数据属性。 有没有办法让客户验证工作,保持我的viewmodel,并使我的控制器行动一起工作?
在一个侧面说明,好像在表单字段数据 - *属性只加了,如果你使用
@using (Html.BeginForm())
用手写出我自己的<form>
标签似乎打破它。
是否需要使用表单助手?
您是否尝试过使用TextBoxFor超载与htmlAttributes?就像调用类似于:@ Html.TextBoxFor(m => m.Person.Name,new {name =“Name”)? –
我希望工作。它允许我添加新的属性,但不覆盖name属性。我认为这种行为应该改变,所以你可以这样做。 –