0

我正在开发一个应用程序,我希望这样的 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}路由。

我对路由配置做错了什么以使其不被使用?

4

1 回答 1

0

删除路由并重新键入它解决了问题。

于 2013-09-24T19:17:36.193 回答