【问题标题】:asp mvc, best solution to store user input data before it will be saved to databaseasp mvc,在将用户输入数据保存到数据库之前存储用户输入数据的最佳解决方案
【发布时间】:2011-07-24 11:21:57
【问题描述】:

例如,我有一个带有一些输入字段的表单(每个表单及其带有验证规则的输入都存储在数据库中)。 每个输入都有它自己的 OnChange(),它将 json(即新值,输入元素名称,...)发布到控制器进行验证,如果验证通过,则必须将新值保存在某处,直到用户单击提交按钮,这将保存所有数据到数据库表。

在这里我想问一下,ui和数据库之间的这个特殊位置可以是什么?

附言 另外,如果用户下次回来时关闭浏览器/表单,我需要问他是否想从一个空表单开始,或者用他之前输入的值填写表单。

谢谢!

【问题讨论】:

    标签: sql-server asp.net-mvc asp.net-mvc-2 caching


    【解决方案1】:

    Cookie 或中间数据库表适用于这种情况。

    【讨论】:

    • 嗨。谢谢回复。是否可以有一张表,所有用户表单输入都将以 xml 格式存储?每次用户更新表单字段时,我都会更新相应的 xml?
    • 绝对正常。请注意同时工作的大量用户。我建议使用通常的表结构,其中包含与表单上的字段相对应的列 - 这样的表会更容易使用,因为每次用户更新表单字段时都不需要操作 xml。跨度>
    • 但是对于通常的表结构,有必要为每个主表创建中间表)
    • 所以你有不止一张桌子?那么,也许你可以创建一个结构如下的表:TempTable { MainTableID, Field, Value }。无论如何,这不是强制性的,您可以使用 xml 字段,尽管这可能会成为未来的问题。这就是我针对您的情况选择 xml 方法的原因。
    【解决方案2】:

    对于这样的中间数据库,你可以使用 MongoDB 之类的东西,它很容易上手,你只需使用你拥有的类,不需要设置任何架构,你只需保存对象

    http://www.mongodb.org/display/DOCS/CSharp+Driver+Tutorial

    【讨论】:

      【解决方案3】:

      如果您在最后提交整个表单,为什么不能只存储当时的值?这是多页表格吗?为什么不允许部分填充数据库记录?您总是可以添加一个位列来将记录标记为完整或不完整。这比复制表结构要简单得多。

      【讨论】:

        猜你喜欢
        • 2017-05-21
        • 2015-04-25
        • 2021-01-29
        • 1970-01-01
        • 2018-03-29
        • 2016-04-23
        • 1970-01-01
        • 2014-06-22
        • 1970-01-01
        相关资源
        最近更新 更多