【发布时间】:2014-09-30 12:18:02
【问题描述】:
型号:
public class oPage
{
public int PageId { get; set; }
public List<oContent> Contents { get; set; }
}
oContent 对象具有属性:Id 和 Text。
视图:(剃刀)
@for (int i = 0; i <= Model.Agrees.Count; i++)
{
@Html.TextAreaFor(m => Model.Agrees[i].Text)
}
我想让用户从客户端添加其他内容。
我发现了一些我不喜欢的解决方案:
手动编写 html 标记。我不喜欢它,因为也许有一天渲染的结构会改变,而我的代码不会说话。 (喜欢这里:http://www.techiesweb.net/asp-net-mvc3-dynamically-added-form-fields-model-binding/)
从服务器获取结构。我不喜欢这个,因为……好吧,除非必须,否则我总是不喜欢使用服务器。 (喜欢这里:How to add items to MVC model in javascript?)
我正在寻找更好、更智能的解决方案。
【问题讨论】:
-
我不同意你不关注这些文章的理由。
-
为什么不呢?你能解释一下吗?
-
您将对 HTML 进行的小 DOM 操作,即。添加一个新的表格行,我认为在可预见的将来不会改变它会破坏你的代码,HTML 是相当标准的。关于第二点,按照文章中的描述去服务器添加新项目没有错
-
1.问题不在于操纵。我希望渲染“真实”项目的同一引擎将渲染“模板”。如果由于某种原因(更新框架或其他原因)属性结构会发生变化,那么它将是有问题的。 2.当我必须去服务器时,我会这样做。但是为了得到我可以首先渲染的东西,这似乎是一种浪费。
标签: javascript asp.net asp.net-mvc asp.net-mvc-4 razor