Какой маршрут мне нужен для предоставления тщеславных URL?

Я хотел бы предоставить своим пользователям адрес тщеславия, что-то вроде:

www.foo.com/sergio

Какой маршрут мне нужно создать?

Представьте, что у меня есть следующий контроллер и действие, как я могу сопоставить URL-адрес тщеславия с этим контроллером?

public ActionResult Profile(string username)
{
    var model = LoadProfile(username);
    return View(model);
}

Вот что я пробовал и что происходит:

Вариант А:

Каждый URL-адрес перехвачен в этом маршруте, то есть каждый введенный мной URL направляет меня к контроллеру аккаунта, а не толькоfoo.com/[USERNAME], Не хорошо.

public static void RegisterRoutes(RouteCollection routes)
{
    routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

    routes.MapRoute(
        "Profile",
        "{username}",
        new { controller = "Account", action = "Profile", username = UrlParameter.Optional }
    );

    routes.MapRoute(
        "Default", // Route name
        "{controller}/{action}/{id}", // URL with parameters
        new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
    );
}
Вариант Б:

Маршруты по умолчанию работают хорошо, но при попытке посетить профильfoo.com/[USERNAME] Я получаю ошибку HTTP 404.

public static void RegisterRoutes(RouteCollection routes)
{
    routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

    routes.MapRoute(
        "Default", // Route name
        "{controller}/{action}/{id}", // URL with parameters
        new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
    );

    routes.MapRoute(
        "DentistProfile",
        "{username}",
        new { controller = "Account", action = "Profile", username = UrlParameter.Optional }
    );
}

Ответы на вопрос(2)

Ваш ответ на вопрос