這可能是一個非常簡單的事情,但谷歌無力無法讓我到任何地方。多個URL路由到一個單一的行動方法
在我們構建的Web應用程序中,我們有項目和模板。模板實際上只是項目,IsTemplate標誌設置爲true。很自然地,我們有一個處理(或處理)這兩種情況的Project控制器。
我們有一個路線在控制器上New
操作方法:
Project/New
這只是標準{controller}/{action}/{id}
路由處理一個。現在,New
操作方法有一個IsTemplate
參數。我想有一個,途徑是在爲假傳遞(上面的),並在它作爲真正傳遞的第二個:
Templates/New
什麼是掩蓋任意操作方法的正確方法參數與這樣的不同的URL?我嘗試以下,但它只是混淆路由(Html.ActionLink
結束了在Templates/New
指向):
routes.MapRoute(
null,
"Template/New",
new { controller = "Project", action = "New", IsTemplate = true }
);
或者這將是一個簡單得多,我只是拆分此爲2種action方法,並將這些調用具有硬編碼參數值的單個私人控制器方法?
這樣就可以解決這個問題了(我假設你沒有觸及默認路徑)。另一種可能性是使用[ActionName](http://stackoverflow.com/questions/6536559/purpose-of-actionname)。另一種可能性是創建一個隱含的操作,稱爲模板/新模板,只調用project/new(isTemplate = true)。 – pasty