将ViewModel数据从GET持久保存到POST

时间:2010-11-12 03:24:50

标签: c# asp.net-mvc asp.net-mvc-2 viewmodel asp.net-4.0

我有两种行动方法:

[HttpGet]
public ActionResult Customize()
{
  return View(new CustomizeViewModel { Thing1 = "test", Thing2 = "test" });
}

[HttpPost]
public ActionResult Customize(CustomizeViewModel customizeViewModel)
{
  _someService.DoSomething(customizeViewModel);

  ...
}

我的ViewModel看起来像:

public class CustomizeViewModel
{
  public string Thing1 { get; set; }
  public string Thing2 { get; set; }
  public string Thing3 { get; set; }
}

在我的视图中,我有一个收集Thing3值的文本框,只显示Thing1Thing2的值。我的问题是,当我POST并输入Customize方法的POST版本时,我只获得Thing3的值(我在文本框中键入的值。)有什么方法可以获得我在Customize方法的GET版本中填充的值是否可以继续?我试过了UpdateModel(),但这没效果。

2 个答案:

答案 0 :(得分:1)

这是为其创建隐藏输入字段的内容之一。使用视图中的HiddenFor将值存储在那里,您应该进行设置。在HTTP POST版本中出现的唯一数据是表单输入元素。

答案 1 :(得分:1)

为Thing1和Thing2添加隐藏字段。