Hoe roep je een andere controller actie van een controller in Mvc
Ik moet een controller B actie FileUploadMsgView oproepen vanuit Controller A en moet daarvoor een parameter doorgeven.
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();
}
138
3
Zoals @mxmissile zegt in de opmerkingen bij het geaccepteerde antwoord, moet je'de controller niet nieuw maken omdat het de afhankelijkheden zal missen die zijn ingesteld voor IoC en zal'de
HttpContext
niet hebben.In plaats daarvan zou je een instantie van je controller moeten krijgen zoals dit:
Controllers zijn gewoon klassen - maak er een nieuw en roep de actie methode op, net zoals je dat bij elk ander klasse lid zou doen:
var result = new ControllerB().FileUploadMsgView("some string");
Je voorbeeld lijkt op pseudo code. Je moet het resultaat van
RedirectToAction
teruggeven: