是否可以从MVC 4中的部分视图获取回发数据到父视图

时间:2012-09-05 08:14:41

标签: .net user-interface razor web asp.net-mvc-4

您好我正在开发一个解决方案,我有两个或多个使用相同模型进行显示,编辑和创建的视图。

我已经查看了部分视图,因为我认为我可以在所有视图中重用大部分视图。

现在我的问题在于我在父视图中组合了多个局部视图,并且希望确保我将所有部分的回发数据传递给父级,以便我可以提交或改变基础模型。

这就是我称之为偏见的方式:

@using (@Html.BeginForm())
{
     @Html.Partial("Person",Model.PersonDetails)
     @Html.Partial("Employment", Model)

     @Html.Action("Save", "Employee")
     @Html.Action("Create", "Employee")
     @Html.Action("Cancel", "Employee")
}

现在,各个Partials包含很多用于labelfor的下拉列表编辑器等等。 我的问题是这是正确的重用方式,还是有更好更安全的方式,因为我已经阅读并听说过很难找到

编辑: 由于一些不相关的问题,我已经进行了一些工作,我已将Actions更改为输入,如下所示:

  <input type="submit" value="Gem" name="submitType" />
<input type="button" value="Anullere" onclick="location.href='@Url.Action("Cancel", "Employee")'" />
<input type="submit" value="Send" name="submitType" />

编辑:自从上次我意识到我的发送按钮不会发送数据作为发布数据后,我添加了另一个更改,因此我将其更改为提交按钮。并为我的两个提交按钮命名。

1 个答案:

答案 0 :(得分:0)

当然,您可以从部分视图中收集数据,并将它们作为回发数据发送到与父视图对应的操作。在您的情况下,您必须确保所有模型字段都包含在您主要表单中,我认为您正在提交。触发提交时,输入/ select / textarea字段中的所有值都将被序列化并附加到请求中,并且在服务器端,所有这些数据都将映射到与您的操作相对应的模型/操作参数。