如何从视图模型发布对象?

时间:2012-04-04 23:40:55

标签: c# asp.net-mvc-3 razor viewmodel

我希望这会起作用:(当调试隐藏输入似乎指向一个对象但在帖子中没有任何显示。这是我尝试过的(请注意,我正在努力简洁,所以这是一个例子)< / p>

模型

public class myViewModel
{
 public MyObject MyObject { get; set; }
 public int MyNumber { get; set; }
}

控制器

public ActionResult displaySimpleView()
{
 var mVM = new myViewModel();
 mVM.MyObject = //let MyObject be filled with 10 fields of data
 return View(mVM);
}

查看

@model namespace.myViewModel

//display the fields of data

@using (Ajax.BeginForm("Complete", ajaxOpts))//simple Ajax Options not really relevant
{
@Html.ValidationSummary(true)

@Html.HiddenFor(m => m.MyObject)
@Html.EditorFor(m => m.MyNumber)

<p><input type="submit" value="Go" /></p>
}
再次

控制器

[HttpPost]
public ActionResult getMyObject(myViewModel mVM)
{
 mVM.MyObject is null here.
 mVM.MyNumber has a value.
 return RedirectToAction("someGetAction");
}

如何将MyObject传递给getMyObject?我宁愿不必为每个属性都有一个隐藏字段,然后重新映射,因为其中一些属性是嵌套对象。

1 个答案:

答案 0 :(得分:2)

查看:

@{
  TempData["passMyObject"] = Model.MyObject;
 }

控制器帖子:

var myObject = TempData["passMyObject"];