2013-09-24 5 views
0

Я работаю над приложением, где мне нужен URL-адрес, так что User\1\Class\Create будет отображаться в контроллере класса и в действии Create, но когда я его применяю, он не подбирает его ,MVC Маршрут не используется, когда он должен

Ниже, как у меня есть маршрут зарегистрирован (он находится в верхней части списка):

routes.MapRoute(
      name: "UserClass", 
      url: "User/{userId}/Class/Create", 
      defaults: new { controller = "Class", action = "Create", userId= "" }, 
      constraints: new { userId= @"\d+" } 
      ); 

(Я также пробовал, опуская userId="" по умолчанию)

Это в паре с этот код:

public class ClassController : BaseController 
{ 
    public ActionResult Create(int userId) 
    { 
     var vm = new ClassEditorViewModel 
     { 
      Class = new Class { UserId = userId }, 
      ClassEnrollmentStatuses = new SelectList(Db.ClassEnrollmentStatuses.ToList(), "Id", "Name") 
     }; 

     return View(vm); 
    } 
} 

Но это не сработает. Когда я использую Route Debugger (Phil Haack), он не использует вышеуказанный маршрут и выбирает маршрут {*catchall}.

Что я делаю неправильно с конфигурацией маршрута, чтобы он не использовался?

+0

Каков маршрут вашего маршрута? Этот маршрут находится на вершине маршрута по умолчанию? –

+0

Вы буквально переходите к * User/1/Class/Create * или вы нажимаете на ссылку, которая была создана. В последнем случае, как вы создаете URL-адрес? – asymptoticFault

+0

@ Andrey.Gubal Этот маршрут находится в верхней части списка, наиболее специфичным для наименее специфического является то, как я их заказываю. – Justin

ответ

0

Удаленный маршрут и повторная печать разрешили проблему.

Смежные вопросы