它应该在没有被使用的情况下使用MVC Route

时间:2013-09-24 16:52:41

标签: c#-4.0 asp.net-mvc-4 routes

我正在开发一个应用程序,我想要一个类似于User\1\Class\Create的URL会映射到类控制器和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(由Phil Haack)时,它不使用上述路由并选择{*catchall}路由。

我在路线配置上做错了什么才能不使用它?

1 个答案:

答案 0 :(得分:0)

删除路线并重新输入以解决问题。