J'ai besoin d'appeler l'action FileUploadMsgView du contrôleur B depuis le contrôleur A et je dois lui passer un paramètre.
Code---its not going to the controller B's FileUploadMsgView().
In ControllerA
private void Test()
{
try
{//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();
}
Comme le dit @mxmissile dans les commentaires de la réponse acceptée, vous ne devriez pas créer le nouveau contrôleur car il lui manquera les dépendances mises en place pour IoC et il n'aura pas le HttpContext
.
Au lieu de cela, vous devriez obtenir une instance de votre contrôleur comme ceci :
var controller = DependencyResolver.Current.GetService<ControllerB>();
controller.ControllerContext = new ControllerContext(this.Request.RequestContext, controller);
Votre échantillon ressemble à du pseudo-code. Vous devez renvoyer le résultat de RedirectToAction
:
return RedirectToAction("B",
"FileUploadMsgView",
new { FileUploadMsg = "File uploaded successfully" });