C # - Как переписать URL в MVC3 - PullRequest
0 голосов
/ 29 сентября 2011

У меня есть URL-адрес, подобный следующему: http://website.com/Profile/Member/34

Мне нужно, чтобы этот URL-адрес работал следующим образом: http://website.com/Profile/John

Указано Джону в качестве имени профиля для идентификатора пользователя = 34.

Кто-нибудь может дать мне указания, как это сделать?

Ответы [ 2 ]

1 голос
/ 30 сентября 2011

Вы должны добавить собственный маршрут в global.ascx.cs, который будет использоваться для перенаправления на хороший контроллер. Но я предполагаю, что «Джон» не является уникальным значением, поэтому вам придется сохранить идентификатор в URL-адресе, или, если Джон является именем пользователя и уникален, вы можете использовать этот URL:

routes.MapRoute("Member", "Profile/{member}", new { controller = "Member", action = "Profile"});

Тогда в вашем контроллере у вас будет:

public ActionResult Profile(string username){
    //fetch from the db
}

Если «Джон» не является уникальным значением, я предлагаю вам использовать:

routes.MapRoute("Member", "Profile/{id}/{member}", new { controller = "Member", action = "Profile"});

Таким образом, ваш URL будет выглядеть как http://website.com/Profile/John/34, а ваш контроллер:

 public ActionResult Profile(int id){
        //fetch from the db
    }

Дайте мне знать, если вам нужна дополнительная помощь!

1 голос
/ 30 сентября 2011

В global.asx вам нужно добавить новый маршрут.

public static void RegisterRoutes(RouteCollection routes)
    {
        routes.MapRoute(
            "Member", // Route name
            "Profile/{member}", // URL with member 
            new { controller = "YourController", action = "Profile"}
        );

    }

Вам все равно нужно будет реализовать действие, которое обрабатывает поиск профиля на основе {member}.

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