在Asp.net mvc razor视图中添加和删除动态表中的行

我是asp.net mvc的新手。 在我的项目中,我必须添加一个表,用户可以在其中输入详细信息并从下拉列表中选择选项。 当用户单击“添加”按钮时,必须在包含所有字段(包括文本框,下拉列表)的表中添加一行。 此外,当用户单击删除按钮时,必须从表中删除特定行。 默认情况下,当页面加载时,表中应该有两行包含所有必填字段。 我需要解决以下问题

  1. 如何实现上述任务。
  2. 我还需要保存表格的详细信息。 那么如何将表格细节传递给控制器​​呢?
  3. 在用户单击编辑按钮后保存详细信息后,我应该加载表中的所有详细信息。 请帮帮我

我也搜索了很多,但没有一个示例包括动态表中的下拉选项。 请帮我完成这项任务。 在此先感谢所有志愿者。

我建议使用Steve Sanderson创建的BeginCollectionItem()帮助器

http://blog.stevensanderson.com/2010/01/28/editing-a-variable-length-list-aspnet-mvc-2-style/

它完全符合你的要求,并通过一个有效的例子逐步完成它。 我在几个项目中都使用过它。

我会在评论中留下一些链接,但我还没有足够的代表。 所以我会在这里作为一个答案,并在评论中阐述它。 但这只是一般信息。 请提供更多具体答案的详细信息。

首先,您使用的是什么版本的MVC? 您的数据模型是什么样的? 你在使用EntityModel吗? 您是否考虑过客户端MVC或MVVM框架或库,例如AngularJS或Knockout?

根据您对这些问题的回答 ,您的问题的答案可能是……

  1. 为您的数据模型创建一个类,并开始使用数据注释进行装饰。 您希望在表中显示的每一列都应作为公共属性公开。 这可以驱动代码第一个DB方法 。 或者,您可以从现有数据库构建EntityModel。 如果您要这样做,您可能希望查看修改EF向导使用的T4模板 ,以将数据注释添加到生成的实体模型中。
  2. 您可以使用开箱即用的脚手架为CRUD操作生成剃刀模板 。 然后,您可以使用新的T4技能来修改脚手架模板 。
  3. 考虑将WebAPI和/或SignalR与客户端框架一起使用,以提供RESTful api或持久连接,其中任何一个都可用于在客户端和服务器之间同步应用程序级数据。

这似乎是一个很好的开销,但如果你要最大限度地使用Razor视图,1和2可以节省你很多时间。

您可能只想在大多数时间与客户端交换应用程序级数据。 您可以使用像AngularJS这样的框架构建客户端体系结构,或者围绕像Knockout这样的库构建自己的框架,绑定到您的数据,并允许标记(例如AngularJS中的自定义指令模板)实际上是通过客户端控制器生成和呈现。

对于开源,标准化的外观和感觉,我建议使用Boostrap查看相对容易使用的组件和布局/样式约定。 您可以使用它的准系统或将其与其他js libs合并, 就像这样 。