在表单字段

时间:2015-09-07 10:06:03

标签: asp.net-mvc

经过简短的研究,我在SO线程中发现,在ASP.NET MVC中有三种最常用的存储信息的方式:

  1. 将信息存储在视图中的表单字段中,稍后将其发布回控制器
  2. 将其保留在某种存储空间中,例如文件或数据库
  3. 通过访问遍及请求的对象将其存储在服务器内存中,例如:会话变量
  4. 第一种方法如何运作?我的意思是,我可以让一个控制器返回一个可以从这个视图访问的view + viewmodel。用户在视图中执行某些操作并从服务器请求操作。现在,该操作将在服务器端执行,它将返回另一个视图。因此,在从服务器请求任何操作后,我在HTML表单字段中存储的任何内容都将消失。

    我想唯一的方法是将表单字段POST到服务器,然后将其与返回的View一起发回。如果我不从视图中发布它们,则模型视图对象数据将消失。或许还有另一种我不知道的方式?

1 个答案:

答案 0 :(得分:0)

如果您需要在请求之间存储一些信息,可以使用隐藏字段。例如,第一个视图包含隐藏字段FirstName和LastName。 您将一些数据发布到控制器,这些数据将映射到某些视图模型。在这种情况下,您应该将FirstName和LastName属性添加到此视图模型,或将它们添加为其他操作参数。 从此操作中,您希望将FirstName和LastName传递给另一个视图:

  1. 您可以创建另一个包含这些属性的视图模型,并在操作中初始化它们
  2. 您可以使用ViewBag,ViewData等存储来传递FirstName和LastName,而无需将它们添加到视图模型中。
  3. 但是如果您不想通过隐藏字段发送FirstName和LastName,则可以使用TempData存储。在呈现某些视图的第一个操作中添加这些参数,您可以在另一个操作中读取它们。 请阅读this文章了解详情。