c# c#? - How to call another controller Action From a controller in Mvc

4 Answers

Controllers are just classes - new one up and call the action method just like you would any other class member:

var result = new ControllerB().FileUploadMsgView("some string");

controller) with

I need to call a controller B action FileUploadMsgView from Controller A and need to pass a parameter for it.

 Code---its not going to the controller B's FileUploadMsgView().
    In ControllerA
  private void Test()

        {//some codes here
            ViewBag.FileUploadMsg = "File uploaded successfully.";
            ViewBag.FileUploadFlag = "2";

            RedirectToAction("B", "FileUploadMsgView", new { FileUploadMsg = "File   uploaded successfully" });

     In ControllerB receiving part
  public ActionResult FileUploadMsgView(string FileUploadMsg)
         return View();

Your sample looks like psuedo code. You need to return the result of RedirectToAction:

return RedirectToAction("B", 
                        new { FileUploadMsg = "File uploaded successfully" });

Let the resolver automatically do that.

Inside A controller:

public class AController : ApiController
    private readonly BController _bController;

    public AController(
    BController bController)
        _bController = bController;

    public httpMethod{
    var result =  _bController.OtherMethodBController(parameters);


if the problem is to call. you can call it using this method.

yourController obj= new yourController();