我有一個項目,我最近升級到ASP.NET MVC 3.在我的本地機器上,一切正常。當我部署到服務器時,每次使用RedirectToAction
調用時都會發生錯誤。它會拋出System.InvalidOperationException
並顯示錯誤消息路由表中沒有路由與提供的值匹配。我的假設是服務器上有一些配置問題,但我似乎無法弄清楚。RedirectToAction在ASP.NET MVC 3中導致「路由表中沒有路由匹配提供的值」
回答
我和RedirectToAction
曾經有過類似的問題,發現你需要註冊的有效路由導致這個動作。
它確實是與路線有關的東西。它在MVC2中工作正常,但我不得不添加一個額外的路由與一個較少的可選參數,使其與MVC3工作。 – Schmalls
退房一瞥,看看你能得到一些航線的調試信息: http://getglimpse.com/
有尾隨的路線斜線不與MVC 3.0工作的差異。 MVC 2.0對他們沒有任何問題。即,如果你改變了以下內容:
"{controller}.mvc/{action}/{id}/"
到:
"{controller}.mvc/{action}/{id}"
應該解決這個問題(從this thread,工作對我來說)。即使你使用升級嚮導移動到MVC 3.0,這仍然會拋出InvalidOperationException
。我不知道這是不是Schmalls正在談論。
我在區域內重定向時遇到了MVC3中的區域。正如其他人所說,Glimpse在這裏非常有用。
我的解決辦法是在路線內的區域將值傳遞參數變化:
return RedirectToAction("ActionName", "ControllerName");
到:
return RedirectToAction("ActionName", "ControllerName", new { area = "AreaName" });
這是真正的答案......我使用AttributeRouting處理了這個問題,即使它在其他頁面上工作而無需指定區域名稱,但我必須爲此特定區域執行此操作。 – jspinella
你可以添加一個路由表到您的RouteConfig.cs文件中像如下:
public static void RegisterRoutes(RouteCollection routes)
{
routes.MapMvcAttributeRoutes();
var namespaces = new[] { typeof(HomeController).Namespace };
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute("name", "url", new { controller = "controllerName", action = "actionName" }, namespaces);
}
注意:「url」就是你要在地址欄中輸入的內容吧:localhost:/ home
建立路線後,請使用RedirectToRoute("url")
。
或者如果你更喜歡RedirectToAction()
那麼你不需要設置上述路線,使用默認值。 RedirectToAction(string action name, string controller name)
;
我希望這會有所幫助。
- 1. ASP.NET MVC路由表中沒有路由匹配提供的值
- 2. 在路由表中沒有路由匹配RedirectToAction
- 3. 「路由表中沒有路由與提供的值匹配」當使用區域
- 4. RenderAction錯誤 - 路由表中沒有路由匹配提供的值
- 5. Html.Action和路由表中沒有路由匹配提供的路由哪條路由的路由
- 6. 上Html.RenderAction MVC路線圖得到了異常:在路由表中沒有路由匹配所提供的值
- 7. MVC預覽4在路由表中的路由提供的值
- 8. ASP.NET CORE,Web API:沒有路由匹配提供的值
- 9. Rails 3中的路由問題:ActionController :: RoutingError(沒有路由匹配...)
- 10. Asp.net MVC 3路由表 - 路由
- 11. Rails 3中沒有路由匹配(淺路由)
- 12. Rails:子路由。沒有路由匹配
- 13. Rails 4路由 - 沒有路由匹配
- 14. 路由錯誤:沒有路由匹配
- 15. 路由錯誤沒有路由匹配
- 16. 路由錯誤沒有路由匹配
- 17. 將@ Html.Action添加到_layout錯誤中,路由表中沒有路由與提供的值匹配。
- 18. 與MVC路由匹配的路由
- 19. 」路由表中沒有路由與提供的值匹配。「扔在一個視圖時出現錯誤只
- 20. 從Umbraco v4升級到v7 SurfaceController路由表中沒有路由與提供的值匹配
- 21. 沒有MVC的ASP.NET路由?
- 22. Rails路由不一致和ActionController :: RoutingError - 沒有路由匹配
- 23. Rails 3路由錯誤 - 「沒有路由匹配」
- 24. Rails 3路由錯誤 - 「沒有路由匹配」
- 25. Rails 3路由幫助沒有路由匹配
- 26. Rails 3:設計:沒有路由匹配「/」
- 27. Rails 3 - 沒有路由匹配錯誤
- 28. 在RefineryCMS路由中沒有提供路由幫助器「new_user_registration_path」
- 29. 沒有路線匹配,對於rails 3中的命名路由
- 30. 軌道3路由問題(路由錯誤「沒有路由匹配...」)
這意味着你重定向到不匹配路由表中的任何路由,請檢查'global.asax'文件中的路由表。我是你添加的參數沒有在路由中聲明 –
請提供關於失敗的'RedirectToAction'的更多細節。另外,請提供路線。 – counsellorben