开发者

Calling another Controller post method

开发者 https://www.devze.com 2023-02-25 11:43 出处:网络
I am using ASP.NET MVC 3 for my website. I have created a partial view that has \"Previous, Next and Save\" buttons. I am calling this partial view on my master page.

I am using ASP.NET MVC 3 for my website.

I have created a partial view that has "Previous, Next and Save" buttons. I am calling this partial view on my master page.

My requirement is that on what ever View I am I must be able to call different Save methods in different controllers by passing respective Model data to controller actions.

Example

  • I have 4 step data input, I have a different controller for each step.
  • If i am on step 1 and i click Save the form Values should go to Step1Controller's action method,
  • If I am on step 2 then post should call S开发者_运维技巧tep2Controller

Something like this this:

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" });
}

This save method will be called for Save button on the Master page. How can I achieve this?


Are the forms on separate actions on the controllers?

If so, just set the form action on each page to point to the relevant controller. So form 1 is

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

Form 2 is:

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

Does that solve your problem?


I would create a private method in the controller and call in every part of the first steps.

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

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

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

精彩评论

暂无评论...
验证码 换一张
取 消