Necesito llamar a una acción del controlador B FileUploadMsgView desde el controlador A y necesito pasarle un parámetro.
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();
}
Como dice @mxmissile en los comentarios de la respuesta aceptada, no deberías reeditar el controlador porque le faltarán dependencias configuradas para IoC y no tendrá el HttpContext
.
En su lugar, deberías obtener una instancia de tu controlador como esta:
var controller = DependencyResolver.Current.GetService<ControllerB>();
controller.ControllerContext = new ControllerContext(this.Request.RequestContext, controller);
Tu ejemplo parece un código psuedo. Necesitas devolver el resultado de RedirectToAction
:
return RedirectToAction("B",
"FileUploadMsgView",
new { FileUploadMsg = "File uploaded successfully" });