Можно ли передать значение маршрута, чтобы показать имя пользователя без имени контроллера в MVC - PullRequest
0 голосов
/ 17 марта 2010

Я хочу получить URL для моего сайта как «www.ABCD.com/username» без имени контроллера в архитектуре MVC, чтобы при щелчке по имени конкретного пользователя я хотел показать детали пользователя с просто имя пользователя, отображаемое в URL.

1 Ответ

2 голосов
/ 17 марта 2010

Это должно привести вас в правильном направлении:

routes.MapRoute(
    "ViewProfile",                                              
    "{username}",                           
    new { controller = "User", action = "ViewProfile" },
    // new { username = "\w+" } // consider using a username regex here
);

Обратите внимание, что вам нужно обновить значения controller и action, чтобы они соответствовали вашему приложению. Действие ViewProfile должно выглядеть примерно так:

public ActionResult ViewProfile(string username) { }

Имейте в виду, что приведенный выше маршрут очень жадный, и вам нужно будет убедиться, что любые другие действия, к которым необходимо получить доступ в вашем приложении, будут размещены выше в списке определений маршрутов. Также имейте в виду, что если пользователь должен выбрать имя пользователя, которое конфликтует с маршрутом, который вы определили над маршрутом ViewProfile, профиль пользователя никогда не будет доступен по корневому пути, потому что другой маршрут переопределит его.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...