1

所以我有一个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...
  }
}
4

2 回答 2

1

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

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

并在 BeginForm 参数中按名称和控制器(如有必要)指定操作...这应该消除模棱两可的引用错误

是一个带有较旧(不是剃刀)标签的示例

于 2013-04-27T04:15:30.310 回答
0

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

@model Tuple<ProjectName.Models.Model1, ProjectName.Models.Model2>
于 2013-04-27T04:19:01.827 回答