MVC批量编辑 - 示例

时间:2009-02-03 14:11:12

标签: asp.net-mvc linq linq-to-sql

好的,这是this question.

的替代方案

我正在尝试使用LinqToSql生成一个MVC应用程序,允许在单个页面上批量编辑数据。

想象一个简单的表Item,ItemId,ItemName,ItemPrice为字段。

有很多简单的MVC应用程序的例子,它们会显示这些项目的列表,每个项目旁边都有一个编辑按钮,底部有一个添加按钮。

从UI的角度来看,当大量数据需要输入/更新时,我发现这非常耗时。

我正在浏览一个包含文本框中项目名称和价格的页面,这些页面可以一次编辑,然后按下一个“保存”按钮来更新数据。

我已经看到了许多执行此过程的各个阶段的示例,但尚未找到实现完整解决方案的示例。特别是与Linq的互动。

我有很多方法我都尝试过,但是,我的直觉告诉我我的方法“闻”,因此我想看看其他人如何尝试这个的一些例子。

所以,简而言之,我的问题是,任何人都可以提供某些示例链接吗?

3 个答案:

答案 0 :(得分:3)

我有written about how to do thisMvcContrib的FluentHtml。史蒂夫桑德森有written about how to do it没有FluentHtml。我们的两篇文章都有一个示例解决方案,您可以下载并查看。

就LinqToSql而言,我认为批量编辑机制(控制器和视图)与LinqToSql之间的任何交互都是一种气味。也就是说,您的UI应尽可能不知道您的持久性机制。

答案 1 :(得分:0)

我可能会做的就是使用jQuery在切换行时调用jsonResult。这个jsonResult将调用模型中的代码来保存ItemId,ItemName,ItemPrice,仅用于您关闭的行。有关jsonResult的更多信息,请参阅jQueryResult:http://www.dev102.com/2008/08/19/jquery-and-the-aspnet-mvc-framework/

你可以做的另一件事是模型绑定到一个Items列表,通过列表迭代保存每个项目 - Phil Haack在这里有一个列表绑定的例子:http://haacked.com/archive/2008/10/23/model-binding-to-a-list.aspx使用你想要的任何一种方法做一些事情来表示行已经改变,所以如果你只是改变一些行,你就不会更新每一个字段。

答案 2 :(得分:0)

您的目标究竟是什么,您是否尝试同时提交一系列信息?或者,您根本不希望每次更改内容时页面都回发。无论哪种情况,jQuery都是您最好的选择。如果你想在一次传递中做所有事情,除非你使用一个jQuery控件来为你做这件事,否则它会变得很复杂。有一些很棒的,比如Flexigrid