调用另一个Controller post方法

时间:2011-04-12 10:10:04

标签: asp.net-mvc-3 controller http-post

我在我的网站上使用ASP.NET MVC 3。

我创建了一个具有“上一个,下一个和保存”按钮的局部视图。我在我的母版页上调用了这个局部视图。

我的要求是,{I} {I}我必须能够通过将相应的View数据传递给控制器​​操作来调用不同控制器中的不同Save方法。

示例

  • 我有4步数据输入,每步都有不同的控制器。
  • 如果我在第1步,我点击保存表单值应转到Model的操作方法,
  • 如果我在第2步,则发帖应致电Step1Controller

这样的事情:

Step2Controller

public ActionResult Save(GenericModel model) { //use reflection to find out model type //call appropriate controller action with model return RedirectToAction("Create", new { Controller = "Conference", Action = "Create" }); } 上的Save按钮会调用此保存方法。我怎样才能做到这一点?

2 个答案:

答案 0 :(得分:0)

表单是否在控制器上单独执行操作?

如果是这样,只需在每个页面上设置表单操作以指向相关控制器。表格1是

<form method="post" action="/step1controller/action">

表格2是:

<form method="post" action="/step2controller/action">

这能解决您的问题吗?

答案 1 :(得分:0)

我会在控制器中创建一个私有方法,并调用第一步的每个部分。

private bool Save(GenericModel model)
{
   ......
}

[HttpPost]
public bool SaveStep1(GenericModel model)
{
      this.Save(model);
}

[HttpPost]
public bool SaveStep2(GenericModel model)
{
      this.Save(model);
}