【发布时间】:2011-03-31 07:35:21
【问题描述】:
在 Scotts 博客 post 中,他描述了如何将对象数组发布到控制器。
我的问题如何最好地为此生成一个视图以允许用户即时添加更多数组项?
如果我写
foreach(MyModel item in Model)
{
<p>@Html.TextBoxFor(m => item.Name)</p>
}
并让控制器在每次生成 <input type="text" name="item.Name" /> 缺少 1 数组索引时向数组添加一个新项。
如果我手动编写 <input> 代码,那么它可以工作,但我会丢失所有客户端验证属性,例如 data-val-required="Name is required"
我想要做的是让用户在运行中向数组添加新项目并且仍然保留不显眼的验证?这方面的最佳做法是什么?
我想我是用 jQuery 自己写的,但如果是这样,我可以保留验证吗?
更新 似乎 Tassadaque 的答案是一个不错的 .NET 解决方案,但看起来有很多服务器端代码来做一些应该很容易的事情。 Muhammad Adeel Zahi 的回答还可以,但仍然错过了客户端验证。
我想我最终只会手动编写自己的客户端 HTML 并使用 jQuery live 和验证插件。因此,我可以在所有客户端都进行自己的验证以及添加和删除新项目,而无需对服务器进行任何调用。
【问题讨论】:
标签: asp.net-mvc razor