所以我有一個叫EmployeeController控制器,所有的意見都在/員工。定製MVC路線:改變其中用於控制器的視圖位於
我想創建一個路由,這樣EmployeeController將使用/員工和/員工/添加,而不是/僱員和/員工/添加。
我不斷尋找如何改變路線去不同的動作的文章,但我找不到任何方式做到這一點。
所以我有一個叫EmployeeController控制器,所有的意見都在/員工。定製MVC路線:改變其中用於控制器的視圖位於
我想創建一個路由,這樣EmployeeController將使用/員工和/員工/添加,而不是/僱員和/員工/添加。
我不斷尋找如何改變路線去不同的動作的文章,但我找不到任何方式做到這一點。
我覺得你與路由混亂意見。 ASP.NET MVC依賴於約定,在這個例子中,它將路由的控制器組件應用於查找控制器。您可以定義一條新路線:
routes.MapRoute("Employees", "employees/{action}", new {
controller = "Employee",
action = "Index" });
爲什麼不只是將EmployeeController重命名爲EmployeesController?那麼你不必亂搞路線。
當然,你便要改變你的瀏覽\員工文件夾視圖\僱員。
其實,有2個不同的問題:
ViewResult
並更改它找到適當的View文件的方式。您還可以深入瞭解框架並調整View的方式,方法是創建您自己的IViewEngine
或自定義其中一個現有的。看來雖然,所有你需要的是第一件事情 - 只是提供像employees/{action}
URL模式更具體的路由映射,就大功告成了。
馬修 - 你可以使用一個類似的路線約定,如果你正在尋找的SO結構從../questions->../questions/tagged/asp.net-mvc等去......即「標籤」控制器不在「最高」級別,而是由問題控制員提供支持。只是有點困惑,我已經有一段時間了 – 2011-01-07 10:42:18
我認爲需要記住的重要一點是,你實際上並沒有被限制在一個'{controller}/{action}/{id}'路線結構中,這只是MVC路由的標準*約定*。在你的例子中,你可以在'questions/{id}/{name}/{comment}'之前定義'questions/tagged/{tag}',並且仍然有完全有效的路線。 – 2011-01-07 11:47:22