0

我在 MVC4 中有点新,我无法弄清楚。

              "CustomViewMOdel"        "CustomViewMOdel"
"ControllerX" ----------------> "VIEW" -----------------> "ControllerY"

我的问题是我想将我的 customviewmodel 传递给查看(它工作得很好!)。在视图中,我向用户显示了一些模型的字段(也可以正常工作)。但是现在我希望用户更改模型字段的一个字段,然后将整个模型传递给控制器​​ X(填充所有字段,包括用户能够更改的字段和刚刚显示的其他字段)

谁能给出一个非常简单的代码示例来说明如何做到这一点?

4

2 回答 2

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”。

于 2013-05-23T08:02:48.177 回答
0

您可以创建一个发布到另一个控制器的表单:

控制器X:

public ActionResult DoSomething()
{
     return View(new CustomVM());
}

视图A

@Model CustomViewModel

@using Html.BeginForm("DoSomethingElse", "ControllerY")
{
    @Html.EditorFor(vm => vm.SomeProperty)
    <input type="submit" value="OK" />
}

控制器Y

public ActionResult DoSomethingElse(CustomViewModel vm)
{
    // do something else
}
于 2013-05-23T08:00:02.193 回答