<p>Using MVC out of the box I found the generated URLs can be misleading and I wanted to know if this can be fixed or if my approach/understanding is wrong.</p>

<p>Suppose I have a CreateEgg page, which has a form on it, and once the form is filled in and submitted the user is taken to a ListEggs page with the new egg in it.</p>

<p>So my egg controller will look some thing like this:</p>

<pre><code>public class EggController : Controller
{
    public void Add()
    {
        //do stuff

        RenderView("CreateEgg", viewData);
    }

    public void Create()
    {
        //do stuff

        RenderView("ListEggs", viewData);
    }
}
</code></pre>

<p>So my first page will have a url of something like <a href="http://localhost/egg/add" rel="nofollow noreferrer">http://localhost/egg/add</a> and the form on the page will have an action of:</p>

<pre><code>using (Html.Form&lt;EggController&gt;(c =&gt; c.Create())
</code></pre>

<p>Meaning the second page will have a url of <a href="http://localhost/Egg/Create" rel="nofollow noreferrer">http://localhost/Egg/Create</a>, to me this is misleading, the action should be called Create, because im creating the egg, but a list view is being displayed so the url of <a href="http://localhost/Egg/List" rel="nofollow noreferrer">http://localhost/Egg/List</a> would make more scene. How do I achieve this without making my view or action names misleading?</p>

[{'answer_id': 38452, 'author': 'Brad Wilson', 'author_id': 1554, 'author_profile': 'https://Stackoverflow.com/users/1554', 'pm_score': 2, 'selected': False, 'text': "<p>The problem is your action does two things, violating the Single Responsibility Principle.</p>\n\n<p>If your Create action redirects to the List action when it's done creating the item, then this problem disappears.</p>\n"}, {'answer_id': 43456, 'author': 'Dan', 'author_id': 230, 'author_profile': 'https://Stackoverflow.com/users/230', 'pm_score': 0, 'selected': False, 'text': '<p>ActionVerbs Outlined in Scott Gu\'s <a href="http://weblogs.asp.net/scottgu/archive/2008/09/02/asp-net-mvc-preview-5-and-form-posting-scenarios.aspx" rel="nofollow noreferrer">post</a> seem to be a good approch;</p>\n\n<p>Scott says:</p>\n\n<blockquote>\n  <p>You can create overloaded\n  implementations of action methods, and\n  use a new [AcceptVerbs] attribute to\n  have ASP.NET MVC filter how they are\n  dispatched.  For example, below we can\n  declare two Create action methods -\n  one that will be called in GET\n  scenarios, and one that will be called\n  in POST scenarios</p>\n</blockquote>\n\n<pre><code>[AcceptVerbs("GET")]\npublic object Create() {}\n[AcceptVerbs("POST")]\npublic object Create(string productName, Decimal unitPrice) {}\n</code></pre>\n'}, {'answer_id': 45108, 'author': 'Matt Hinze', 'author_id': 2676, 'author_profile': 'https://Stackoverflow.com/users/2676', 'pm_score': 0, 'selected': False, 'text': '<p><a href="http://haacked.com/archive/2008/08/29/how-a-method-becomes-an-action.aspx" rel="nofollow noreferrer">How A Method Becomes An Action</a> by Phil Haack</p>\n'}]
['https://Stackoverflow.com/questions/38431', 'https://Stackoverflow.com', 'https://Stackoverflow.com/users/230/']