在视图中发布多个模型

时间:2013-04-27 04:01:33

标签: c# asp.net-mvc-4

所以我的View包含2个models。每个model都有自己的表单和提交按钮。

目前,我有两个提交按钮都由相同的controller方法处理,并使用reflection来确定传递的模型类型。但似乎会有更好的方法......任何想法?

我有这样的事情:

型号:

public class Model1
{
  // Elements
}

public class Model2
{
  // Elements
}

控制器:

public ViewResult ConMeth(Object model)
{
  Type t = model.GetType();
  if(t == typeof(Model1)
  {
    // Do work for Model1
  }
  else if(t == typeof(Model2)
  {
    // Do work for Model2
  }
  else
  {
    // Do something else...
  }
}

2 个答案:

答案 0 :(得分:1)

如果您显示查看信息,我怀疑您在视图中发生了两个单独的事情。只需将每个东西放在自己的形式中并使用

@using (Html.BeginForm(...)){}

并在BeginForm参数中指定名称和控制器(如果需要)的动作......这应该摆脱模棱两可的参考错误

Here是一个使用较旧(不是剃刀)标签的示例

答案 1 :(得分:0)

你可以使用元组<>在您的视图中有两个视图模型,然后在每个表单的@ Html.BeginForm()帮助器方法中,您可以指定POST到两个不同的控制器来处理您的表单数据。

@model Tuple<ProjectName.Models.Model1, ProjectName.Models.Model2>