我正在开发一个应用程序,我希望这样的 urlUser\1\Class\Create
会映射到 Class 控制器和 Create 操作,但是当我应用它时,它不会拾取它。
以下是我注册路线的方式(位于列表顶部):
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 (by Phil Haack) 时,它不使用上述路由并选择{*catchall}
路由。
我对路由配置做错了什么以使其不被使用?