Naming convention for models that get posted against a controller? : <p>We use the term <em>ViewModel</em> for classes that get returned from a controller and are passed to the view. Instead of using ViewBag or ViewData, we are using a strongly typed class which basically stores every value the view needs.</p>

<pre><code>public IActionResult OrderStep1()
{
    var model = new ViewModelStep1()
    {
      SomeProperty = "SomeValue",
       ...
    }
    return View(model);
}
</code></pre>

<p>I'm looking for a naming convention that specifies how we should name a class that contains the properties that are posted from the submit button of a form to the controller. In the following example, I've chosen <code>OrderStep2</code> as a temporary name for that class. </p>

<p>For our multiple step order wizard, we are using <a href="https://en.wikipedia.org/wiki/Post/Redirect/Get" rel="nofollow noreferrer">Post/Redirect/Get</a> pattern. Therefore, I can enrich the information from <code>OrderStep2</code> and return a specific ViewModel <code>OrderStep2VM</code>.</p>

<pre><code>[HttpPost]
[ValidateAntiForgeryToken]
[Route("order/step2")]
public async Task&lt;IActionResult&gt; OrderStep2(OrderStep2 model)
{
  // save some changes into the database and retrieve a GUID configurationId
 return RedirectToAction(nameof(OrderStep2()), new { configurationId = "GUID" });
}

[Route("order/step2/{configurationId}")]
public IActionResult OrderStep2(Guid configurationId)
{
   // retrieve configuration from database based on the configurationID
   // do something else
   var model = new OrderStep2VM()
   {
      ....
   };
   return View(model);
}
</code></pre>

<p>Since I want the code to be well organized, I'd like to group classes such as <code>OrderStep2</code> into a seperate namespace. Currently, I'm thinking of calling them <em>PostModels</em>, i.e., <code>OrderStep2PM</code>, but I don't want to define a new term for something that probably already exists.</p>

<p>(In case you are wondering why I'm not using TempData: The workflow of the application requires saving incomplete form data which allows me to skip TempData since I need to store in the database anyway).</p>
