title: What is the difference between return View(model) and return RedirectToAction("ViewName",model)
body: <p>I can't get my Index() action to Pass a valid model to my Review()  Action</p>
  
  <p>... ActionResult Index()...</p>
  
  <pre><code>            else
              {
                  return RedirectToAction("Review", wizard); &lt;--wizard is a valid object here....
  
              }
  </code></pre>
  
  <p>ActionResult Review() </p>
  
  <pre><code>    public ActionResult Review()
      {
          return View(_wizard); &lt;-- THis is always null.
      }
  </code></pre>
  
  <p><strong>Update:</strong>
  Here is my whole controller.  I want to take the user from the wizard index, to a review page, then finally to a transmit page that actually saves the data.  I'm having real problems wrapping my head around the final piece.  When you are used to asp classic where you have to explicitly write everything from scratch, it's kind of hard to get used to the Magic inherit in MVC3.  So, I bet I'm writing a lot of uneeded code.</p>
  
  <pre><code>using System;
  using System.Collections.Generic;
  using System.Linq;
  using System.Web;
  using mvc3test.Models;
  using Microsoft.Web.Mvc;
  using System.Web.Mvc;
  using mvc3test.Services;
  
  namespace mvc3test.Controllers
  {
  
      public class WizardController : Controller
      {
  
          private WizardViewModel wizard = new WizardViewModel();
          private DR405DBContext db;
  
          public WizardController(IDBContext dbContext)
          {
              db = (DR405DBContext)dbContext;
          }
  
          public WizardController()
          {
              db = new DR405DBContext();
          }
  
          public ActionResult Index()
          {
  
              wizard.Initialize();
              return View(wizard);
          }
  
          [HttpPost]
          public ActionResult Index([Deserialize] WizardViewModel wizard, IStepViewModel step)
          {
  
              wizard.Steps[wizard.CurrentStepIndex] = step;
              if (ModelState.IsValid)
              {
                  if (!string.IsNullOrEmpty(Request["next"]))
                  {
                      wizard.CurrentStepIndex++;
                  }
                  else if (!string.IsNullOrEmpty(Request["prev"]))
                  {
                      wizard.CurrentStepIndex--;
                  }
                  else
                  {
                      return View("Review", wizard);
  
                  }
              }
              else if (!string.IsNullOrEmpty(Request["prev"]))
              {
                  wizard.CurrentStepIndex--;
              }
              return View(wizard);
  
  
          }
  
  
          [AllowAnonymous]
          public ActionResult Review(WizardViewModel model)
          {
              return View(model);
          }
  
          [AllowAnonymous]
          [HttpGet]
          public ActionResult Review(Int32 ID)
          {
              var service = new DR405Service(db);
              var myWizard = service.WireUpDataModelToViewModel(service.DBContext.dr405s.Single(p =&gt; p.ID == ID));
  
              return View(myWizard);
          }
  
  
          public ActionResult Transmit()
          {
              var service = new DR405Service(db);
              service.Wizard = wizard;
              service.Save();
              return View();
          }
  
  
      }
  }
  </code></pre>