Я работаю над приложением, где мне нужен 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}
.
Что я делаю неправильно с конфигурацией маршрута, чтобы он не использовался?
Каков маршрут вашего маршрута? Этот маршрут находится на вершине маршрута по умолчанию? –
Вы буквально переходите к * User/1/Class/Create * или вы нажимаете на ссылку, которая была создана. В последнем случае, как вы создаете URL-адрес? – asymptoticFault
@ Andrey.Gubal Этот маршрут находится в верхней части списка, наиболее специфичным для наименее специфического является то, как я их заказываю. – Justin