2013-09-24 55 views
0

我正在一個應用程序,我想這樣的網址User\1\Class\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 *或者你是否點擊了創建的鏈接。在後者的情況下,你如何創建網址? – asymptoticFault

+0

@ Andrey.Gubal這條路線位於列表的最上方,最具體到最具體的是我如何訂購它們。 – Justin

回答

0

刪除路線並重新輸入它解決了問題。

相關問題