首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >ASP.NETMVC 3中复杂类型列表的最佳实践是什么?

ASP.NETMVC 3中复杂类型列表的最佳实践是什么?
EN

Stack Overflow用户
提问于 2018-03-12 03:04:27
回答 2查看 0关注 0票数 0

这是一个复杂的问题来描述。基本上,我有一个添加/编辑视图,允许用户编辑某些对象的字段。这个对象非常复杂:它有一些字段,它有一个复杂对象的子列表。每个复杂的对象大约有40个字段(主要是复选框,单选按钮和日期/时间)。我已将此列为选择列表:

http://fortheloot.com/public/pictures/sub-items.png

添加按钮滋生与各领域的对话。

问题在这里。当用户接受对话框并关闭对话框时,我现在必须将这些数据存储在某处,以便用户可以在实际提交表单之前进一步编辑或添加其他子项。

最明显的做法是为每个子对象创建一组隐藏字段。所以,添加一个子项目会为元素添加40个隐藏元素<form>。添加10个子项目,并且有400个隐藏字段。这样可以正常工作,并且如果字段命名正确,它将绑定到此模型:

代码语言:txt
复制
public class AddEditModel
{
  [Display(Name = "ID")]
  public int? Id { get; set; }

  [Display(Name = "Name")]
  [Required]
  [StringLength(100)]
  public string Name { get; set; }

  public IList<EntryModel> Entries { get; set; }
  public class EntryModel { /* fields */ }
}

在模型绑定方面,这看起来很不错,但从客户端来说,我不得不跟踪数百个DOM元素,这对我来说似乎很麻烦。从40个其他元素加载和卸载对话框的各种表单元素似乎......可能会更好。

理想情况下,我希望能够<option>使用data-HTML 5属性或jQuery的data()函数将数据作为JavaScript对象存储在元素上,这些功能实际上是一样的。这将使事情的JavaScript方面更简洁,但它不会在回发时自动绑定到模型。

如果有两种方法来实现两全其美的方式 - 在<option>元素上存储单个JS对象,或者甚至是单个<input type="hidden" />元素(每个子项) - 它仍然会在回发时正确绑定到模型,我会感觉这个问题解决了。

EN

Stack Overflow用户

发布于 2018-03-12 12:26:03

你有没有考虑使用像骨干或挖空的JavaScript框架?

票数 0
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/-100007584

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档