Перезапись URL + ASP.NET MVC - PullRequest
0 голосов
/ 02 октября 2009

У меня проблема с тем, что пользователи хотят, чтобы URL были такими, как http://host/Post/PostTitle

Возможно ли это?

Как вы не переходите в действие?

Ответы [ 5 ]

2 голосов
/ 02 октября 2009

Палантир прав, вы можете проложить маршрут так:

routes.MapRoute(
    "Posts", // route name
    "Post/{PostTitle}",
    new { controller = "Post", action = "Index" }
);

А затем в вашем PostController вы должны создать действие следующим образом:

public ActionResult Index(string PostTitle)
{
 ...
}
1 голос
/ 02 октября 2009

Конечно, вы просто делаете соответствующий маршрут. Это очень сильно зависит от других маршрутов, которые у вас есть на карте, но этот принцип работает практически в любой ситуации. Однако поместите его перед маршрутом по умолчанию.

routes.MapRoute(
    "Login",
    "Page/{id}",
    new { controller = "Page", action = "index", id = "" }
);
0 голосов
/ 02 октября 2009

Попробуйте изменить свой PostController на это (для целей тестирования).

public class PostController : Controller
{
  public string Index(string postTitle)
  {
    return postTitle;
  }
}

А ваш маршрут определен как

routes.MapRoute(
    "Posts", // route name
    "Post/{PostTitle}",
    new { controller = "Post", action = "Index" }
);
0 голосов
/ 02 октября 2009

AFAIK, функция перезаписи URL-адреса введена только в IIS 7. Прочитайте этот блог , чтобы узнать больше об этом.

0 голосов
/ 02 октября 2009

Вы можете вывести действие, настроив соответствующие схемы маршрутизации URL

В этой статье MSDN подробно рассказывается, как установить значения по умолчанию.

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