I would say that an action should always process an HTTP request. If it returns a view or redirects to another action, both are possible.
Consider the following:
[HttpGet] // Handles only GET requests public ActionResult Edit(int id) { // get entity from repository // and create edit model return View(editModel); } [HttpPost] public ActionResult Edit(EntityEditModel editModel) { // if ModelState is valid, save entity // and if success redirect to index return RedirectToAction("Index"); }
The first action returns the view, the second does not (only if the ModelState is invalid, it displays the "Edit" view again). And this is absolutely right to do (this is even recommended). But both actions process the HTTP request.
source share