Как использовать удобные для пользователя адреса? - PullRequest
0 голосов
/ 19 декабря 2011

У меня есть система управления проектами.Если я хочу открыть проект с помощью id=123, я перенаправляю на действие контроллера, используя адрес:

http://myhost:67845/Projects/id=123

Как я могу использовать удобную ссылку для такого же действия, как:

http://myhost:67845/Projects/John-can-develop-asp-net-site-for-you

Ответы [ 2 ]

1 голос
/ 19 декабря 2011

Используя маршрутизацию по умолчанию, вы можете использовать http://myhost:67845/Projects/123 без каких-либо изменений, поскольку 123 будет обрабатываться как идентификатор.

Однако, если вы хотите использовать такое дружественное имя, вы должны внести измененияв вашем контроллере.

Во втором случае, в вашем контроллере Projects (для маршрутизации по умолчанию) это будет обрабатываться методом Index.Этот метод должен иметь свойство string id.

Тогда внутри вашего метода вам понадобится способ конвертировать между John-can-develop-asp-net-site-for-you и 123. Это может быть и то, что John-can -velop-asp-net-site-for-you - это имя проекта 123, или вам придется также сохранить понятное имя в базе данных, чтобы выполнить преобразование.

1 голос
/ 19 декабря 2011

Вы можете обновить маршрут по умолчанию:

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

    routes.MapRoute(
        "Default",
        "{controller}/{action}/{title}",
        new { 
            controller = "Home", 
            action = "Index", 
            title = UrlParameter.Optional 
        }
    );
}

и затем иметь действие контроллера, которое будет принимать заголовок в качестве аргумента

public ActionResult Index(string title)
{
    ...
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...