Possiamo chiamare il metodo di un controller da un altro controller in asp.net MVC?Possiamo chiamare il metodo di un controller da un altro controller in asp.net MVC?
risposta
Si potrebbe anche semplicemente reindirizzare dritto al metodo in questo modo:
public class ThisController
{
public ActionResult Index()
{
return RedirectToAction("OtherMethod", "OtherController");
}
}
Tecnicamente, sì. È possibile chiamare un metodo statico di un controller o inizializzare un'istanza di un controller per chiamare i relativi metodi di istanza.
Questo, tuttavia, ha poco senso. I metodi di un controller devono essere invocati dal motore di routing indirettamente. Se senti la necessità di chiamare direttamente un metodo di azione di un altro controller, è un segno che devi fare una riprogettazione.
Concordato. È meglio restituire un 'RedirectToRouteResult' piuttosto che chiamare l'altro controller. –
Beh, ci sono diversi modi per chiamare in realtà un metodo di istanza su un altro controller o chiamare un metodo statico fuori che tipo di controller:
public class ThisController {
public ActionResult Index() {
var other = new OtherController();
other.OtherMethod();
//OR
OtherController.OtherStaticMethod();
}
}
Si potrebbe anche reindirizzare ad un altro controller, il che rende più senso .
public class ThisController {
public ActionResult Index() {
return RedirectToRoute(new {controller = "Other", action = "OtherMethod"});
}
}
Oppure si può semplicemente ridefinire il codice comune nella propria classe, il che ha ancora più senso.
public class OtherClass {
public void OtherMethod() {
//functionality
}
}
public class ThisController {
public ActionResult Index() {
var other = new OtherClass();
other.OtherMethod();
}
}
Come controllori sono solo classi in modo Sì, ce la possiamo fare. Siamo in grado di farlo da alcuni dei seguenti modi- 1.By redirecting- direttamente return RedirectToAction("MethodName", "ControllerName");
2.By creazione di oggetti - ControllerName objController=new ControllerName();
objController.methodName(parameters)
Try This.
var ctrl= new MyController();
ctrl.ControllerContext = ControllerContext;
//call action
return ctrl.Action();
- 1. Chiamare un metodo da un altro controller
- 2. Spring MVC, chiamare un altro controller dall'interno di un controller
- 3. Chiamare un metodo di controller in un altro controller Ember
- 4. Visualizzare una vista da un altro controller in ASP.NET MVC
- 5. Chiamare il metodo asincrono dal controller MVC
- 6. .NET MVC controller instantiate all'interno di un altro controller
- 7. Chiama un metodo da un controller all'interno di un altro
- 8. ASP.NET MVC: cancellazione TempData dopo l'esecuzione di un metodo controller
- 9. Come chiamare una funzione da un altro controller in angularjs?
- 10. Controller asincrono in ASP.NET MVC
- 11. Chiamare il metodo di controllo AngularJs da un altro servizio
- 12. Reindirizza un controller a un altro controller
- 13. Chiamare un metodo di modello in un controller
- 14. asp.net mvc controller generico
- 15. Rendering di un altro controller
- 16. ASP.Net MVC - post da un controller a un altro (azione su azione)
- 17. Reindirizzamento da un metodo di controller a un altro metodo di controllo
- 18. Passing informazioni tra controller in ASP.Net MVC-
- 19. Come posso chiamare un metodo WebApi dal metodo di azione del controller MVC?
- 20. Symfony 2 Chiamare una funzione in un metodo di controller
- 21. Chiamare il metodo super nel controller sails.js
- 22. Come chiamare un altro post su un altro controller nel test funzionale di Rails
- 23. ASP.NET MVC controller azioni design
- 24. .NET MVC - Chiamare un controller Azione da un'altra azione del controller
- 25. Controller MVC IoC e ASP.NET
- 26. Come si chiama un metodo controller da JQuery?
- 27. ASP.Net MVC Controller Namespace array
- 28. ASP.NET MVC Controller aggiungendo disabilitato
- 29. Fabbrica controller ASP.NET MVC 6
- 30. ASP.NET MVC - Respository/Service/Controller
Sì e se voglio restituire una lista da "OtherMethod"? var result = RedirectToAction non consegna l'elenco ... – eMi