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

时间:2015-04-03 14:03:09

标签: c# jquery asp.net-mvc razor

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

  1. 如何实现上述任务。
  2. 我还需要保存表格详细信息。那么如何将表格细节传递给控制器​​?
  3. 在用户点击编辑按钮后保存详细信息后,我应该加载表格中的所有详细信息。请帮帮我
  4. 我也搜索了很多但是这个例子都没有包含动态表格中的下拉选项。请帮我完成这项任务。在此先感谢所有志愿者。

2 个答案:

答案 0 :(得分:2)

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

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

它实现了你想要的东西,并且他用一个有效的例子一步一步地完成它。我在我的几个项目中都使用过它。

答案 1 :(得分:0)

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

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

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

  1. 为您的数据模型创建一个类,然后开始使用data annotations进行装饰。 您希望在表中显示的每一列都应公开为公共属性。这可以驱动code first DB approach。或者,您可以从现有数据库构建EntityModel。如果您打算这样做,您可能希望修改T4 templates used by the EF wizard,以便将数据注释添加到生成的实体模型中。
  2. 您可以使用开箱即用的scaffolding to generate razor templates for CRUD operations。然后,您可以使用新的T4技能modify the scaffolding templates
  3. 考虑将WebAPI和/或SignalR与客户端框架一起使用,以提供RESTful api或持久连接,其中任何一个都可用于在客户端和服务器之间同步应用程序级数据。
  4. 这似乎是一个很好的开销,但1&如果您要最大限度地使用Razor视图,2可以为您节省大量时间。

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

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