Recycling Action Methods in ASP.NET MVC
Within an Action method, you'll sometimes realize that the processing you need is in some other Action method, often in the same controller. ASP.NET MVC provides a couple of ways of transferring control from one Action method to another one, but, sometimes, the simplest solution is just to call the other method. In those cases, it's worthwhile to remember that when you call the View method in ASP.NET MVC, you're not actually processing a View. The View method merely creates a ViewResult object that, when you return it to ASP.NET MVC, causes ASP.NET MVC to find the View and process it.
In a recent project, many of my controller methods ended by redisplaying the initial page. I had already created a View that did that: It was the first View that's displayed by the controller (I called the Action method that delivered the View FirstDisplay). That method looked like this:
Public Function FirstDisplay (id As Integer?) As ActionResult
...code to load the result object with the data to display...
Return View("DisplayItem", result)
In my other methods, I could just call FirstDisplay to redisplay the page. FirstDisplay would return the ViewResult object with the correct data, so I just had to return the results of FirstDisplay to get the page I wanted:
Public Function Update (id As Integer?) As ActionResult
...code required by the action method...
See? Recycling is good.
Posted by Peter Vogel on 07/15/2015 at 10:55 PM