调用另一个Controller post方法

问题描述 投票:0回答:2

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

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

我的要求是,无论我是什么View,我必须能够通过将相应的Save数据传递给控制器​​动作,在不同的控制器中调用不同的Model方法。

  • 我有4步数据输入,每步都有不同的控制器。
  • 如果我在第1步,我点击保存表单值应该转到Step1Controller的动作方法,
  • 如果我在第2步,那么帖子应该调用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上为Master page按钮调用。我怎样才能做到这一点?

asp.net-mvc-3 controller http-post
2个回答
0
投票

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

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

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

表格2是:

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

这会解决你的问题吗?


0
投票

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

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

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

[HttpPost]
public bool SaveStep2(GenericModel model)
{
      this.Save(model);
}
© www.soinside.com 2019 - 2024. All rights reserved.