title: MVC Form Submit - Redirecting to an action that is not accessible from the browser directly
body: <p>I am learning MVC 3 after hours right now and last night I ran into an issue that seems like it would be very simple to solve but I can't seem to locate a solution for it.</p>
  
  <p>I have a simple contact form.  The end user fills out the form and submits it. When they submit the form I redirect the end user to a different action in the same controller which renders an "inquiry submitted" page/view which is basically a "Thank you page".</p>
  
  <p>The controller is setup like so.</p>
  
  <pre><code>public ActionResult ContactUs()
  {
     return View();
  }
  
  [HttpPost]
  public ActionResult ContactUs(ContactInfo contactInfo)
  {
       if (!ModelState.IsValid)
       {
            return View();
       }
  
       //perform some business logic
  
       return RedirectToAction("InquirySubmitted",contactInfo);
  
  
  }
  
   public ActionResult InquirySubmitted(ContactInfo contactInfo)
   {
      return View(contactInfo);
   }
  </code></pre>
  
  <p><strong>The problem:</strong> 
  I do not want end users navigating directly to the InquirySubmitted action via the browser.<br>
  I only want the ContactUs action in the controller to be able to send users to the InquirySubmitted View.</p>
  
  <p>I have attempted to make the InquirySubmitted action private so that only the controller can call it like so:</p>
  
  <pre><code>private ActionResult InquirySubmitted(ContactInfo contactInfo)
  </code></pre>
  
  <p>But this produces an error which I fully understand because I am forcing the browser to request InquirySubmitted by using RedirectToAction().  </p>
  
  <p>So my question is simply: What is the best "MVC 3 style" solution to this issue. </p>