我在MVC4中有点新,我无法弄明白。
"CustomViewMOdel" "CustomViewMOdel"
"ControllerX" ----------------> "VIEW" -----------------> "ControllerY"
我的问题是我想将我的customviewmodel传递给视图(工作正常!)。在View中向用户显示一些模型的字段(也可以正常工作)。但是现在我想要用户,更改模型字段的一个字段,然后将整个模型传递给控制器X(填充所有字段,包括用户能够更改的字段以及刚刚显示的其他字段)
任何人都可以提供一个非常简单的代码示例,说明如何执行此操作吗?
答案 0 :(得分:0)
您只需创建一个发布到另一个控制器的表单:
ControllerX:
public ActionResult DoSomething()
{
return View(new CustomVM());
}
ViewA
@Model CustomViewModel
@using Html.BeginForm("DoSomethingElse", "ControllerY")
{
@Html.EditorFor(vm => vm.SomeProperty)
<input type="submit" value="OK" />
}
ControllerY
public ActionResult DoSomethingElse(CustomViewModel vm)
{
// do something else
}
答案 1 :(得分:0)
您可以在表单上使用@Html.HiddenFor(o => o.Property)
。
这不会显示其中的属性。
但高级用户可以通过开发控制台更改属性。因此,您应该检查ControllerY中的所有更改
示例:
@Html.HiddenFor(o => o.Id)
@Html.HiddenFor(o => o.Name)
@Html.EditorFor(o => o.Description)
<input type="submit" value="OK" />
这只会让用户更改描述,但在FormCollection上仍然有“id”和“name”。