2010-02-20 2 views
1

У меня есть этот единоличный маршрут в моем приложении:Как разрешить дополнительный текст после моих URL-адресов в ASP.NET MVC?

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

Это прекрасно работает для URL, как:

/Ли/Index
/Ли/Создать
/Ли/Подробность/5

Я хочу добавить текст к этому последнему, как SO делает:

/Л/Деталь/5/Page-Титульные Вот-Ор-Безотносительно

Так что мой вопрос:

Что должны мои маршруты выглядеть, чтобы сделать это? (или, если он не имеет ничего общего с маршрутами ... что мне делать?)

ответ

2

MSDN Ссылка: http://msdn.microsoft.com/en-us/library/cc668201.aspx

routes.MapRoute( 
    "Default",        
    "{controller}/{action}/{id}/{*allTheRest}",   
    new { controller = "Home", action = "Index", id = "", allTheRest=""} 
); 

Функция подписи должна быть похожа на

public ActionResult MyAction(int? id, string rest) 
    { 
     this.TempData["ID"] = id ?? -1000; 
     this.TempData["REST"] = rest ?? "Not Provided"; 
     return View(); 
    } 
+0

Это не совсем работает для меня ... мне нужно перезапустить IIS или очистить кеш где-нибудь? –

+0

Какую версию MVC вы используете? Это релиз MVC 2, который будет включен в VS2K10 через несколько недель. –

+0

Я создал проект с нуля, и это действительно работает, спасибо! Мне просто нужно выяснить, почему он не работает в моем существующем проекте IIS ... –