2009-10-02 2 views

ответ

1

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

routes.MapRoute(
    "Login", 
    "Page/{id}", 
    new { controller = "Page", action = "index", id = "" } 
); 
+0

если я делаю это Http: // Localhost: 3630/Post/Neque_porro_quisquam_est routes.MapRoute ( "Post", // маршрут name «Post/{title}», // URL с параметрами new {controller = "Post", action = "Index", title = ""} // Параметры по умолчанию ); Я получаю ресурс не может быть найден! :( – 2009-10-02 07:19:25

+0

У вас есть пост-контроллер на месте и действие индекса, принимающего строку (не int) в качестве входного сигнала? Вы перекомпилировали все? – Palantir

+0

@jack Какие еще страницы MVC? Они работают? – gius

0

Вы можете вывести действие путем создания соответствующих URL Routing schemes

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

0

AFAIK, функция перезаписи URL введена только в IIS 7. Для получения дополнительной информации об этом читайте this blog.

+0

Строго говоря, может быть правильно, но ASP.net MVC будет работать на IIS6 с некоторыми очень простыми шагами, включая переписывание URL. См. здесь: http://blog.codeville.net/2008/07/04/options -for-deploying-aspnet-mvc-to-iis-6/ – Palantir

2

Palantir правильно, вы можете сделать маршрут, как это:

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

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

public ActionResult Index(string PostTitle) 
{ 
... 
} 
+0

Я сделал это, и теперь он работает. Хе-хе попробует и проследит, не попал ли он в маршрут! – 2009-10-02 07:34:29

+0

Я имел ввиду, что это не работает – 2009-10-02 07:39:11

+0

Попробуйте cha nge name Post somehing else - он может столкнуться с действием Post (GET/POST) - просто угадать :-) – gius

0

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

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

И ваш маршрут определяется как

routes.MapRoute(
    "Posts", // route name 
    "Post/{PostTitle}", 
    new { controller = "Post", action = "Index" } 
); 
Смежные вопросы