C# 在提交之前请记住字段数据

C# 在提交之前请记住字段数据,c#,asp.net-mvc,razor,C#,Asp.net Mvc,Razor,我正在开发一个MVC web应用程序 我已经为HTML表单创建了一个ViewModel,并将其传递给视图 我想知道是否有一种方法可以保存用户在提交表单之前输入的数据?下面的场景就是我想要实现的 情景: 登录-->转到表单页-->填写表单(用户数据)-->不提交-->关闭浏览器/注销-->再次登录/打开浏览器-->转到表单页-->上次会话中输入的数据仍然存在 有什么办法可以做到这一点吗 我没有使用ViewBag或Session在页面上加载表单数据/标签/输入字段(下拉列表)。所有内容都通过View

我正在开发一个MVC web应用程序

我已经为HTML表单创建了一个ViewModel,并将其传递给视图

我想知道是否有一种方法可以保存用户在提交表单之前输入的数据?下面的场景就是我想要实现的

情景:

登录-->转到表单页-->填写表单(用户数据)-->不提交-->关闭浏览器/注销-->再次登录/打开浏览器-->转到表单页-->上次会话中输入的数据仍然存在

有什么办法可以做到这一点吗

我没有使用ViewBag或Session在页面上加载表单数据/标签/输入字段(下拉列表)。所有内容都通过ViewModel传递

我正在研究数据注释,但不确定需要使用哪一种。 Cookie是最不可取的,但它会成功,没有其他解决方案可用


干杯

如果您不提交表单,数据将永远不会到达服务器,您将无法在服务器端执行任何操作来存储数据

您唯一的选择是在客户端存储数据。为此,您有两个选项:

  • 饼干。对于这一点,jQuery.cookie是一个非常易于使用的工具,或者
  • HTML5本地存储
  • 编辑:

    您可以使用ajax调用在后台将数据发送到服务器。从技术上讲,这不是“提交”表单


    因此,一旦数据发生变化(最好是经过一些延迟),使用Javascript,您就可以使用Ajax将当前内容上载到服务器,以便以后检索。它认为这就是一些像SO这样的网站保存“草稿”内容的方式。

    您可以使用Ajax、JQuery或JavaScript将页面状态保存在后端。当用户再次登录时,您可以检查状态并相应地检索该使用的数据

    若用户不提交,那个么就无法使用asp.net mvc等服务器技术来存储它。试试HTML5中引入的浏览器缓存@Marcel:我不太喜欢Cookies。如果没有其他选择,我希望这是我的最后一个选择。尽管这两种可能性都有缺点,用户可以很容易地禁用cookie,或者用户可能使用的浏览器版本太旧,无法正确支持HTML5。