我一直在這個問題上停留了好幾個小時。爲什麼我在路線匹配時得到404? ASP.Net MVC
我有一個名爲'DecisionPoint'的控制器,我在它的'ApplicationState'操作上設置了一個斷點。無論我嘗試什麼,我都會在瀏覽器中看到404。我懷疑我的路線不正確,所以我下載了一個路由調試器,它將我所嘗試的URL與我的控制器和操作相匹配。那麼,爲什麼我會得到404並且從來沒有看到斷點?
/DecisionPoint/ApplicationState /沒有/ worky - > 404
控制器:
public ActionResult ApplicationState(string fileName, string stateString)
{
string filePath = GetDpFilePath(fileName);
HtmlDocument htmlDocument = new HtmlDocument();
htmlDocument.Load(filePath);
HtmlNode stateScriptNode =
htmlDocument.DocumentNode.SelectSingleNode("/html/head/script[@id ='applicationState']");
stateScriptNode.InnerHtml = "var applicationStateJSON =" + stateString;
htmlDocument.Save(filePath);
return Json("State Updated");
路線
routes.MapRoute(
"DecisionPointState", // Route name
"DecisionPoint/ApplicationState/{fileName}/{stateString}", // URL with parameters
new {controller = "DecisionPoint", action = "ApplicationState"} // Parameter defaults
);
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
);
}`
**Update**
我創造一個全新的控制器和它的作品。這就是我的路由表的樣子。狀態控制器correclty路線即時存檔
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
"StateRoute", // Route name
"State/SaveState/{file}/{state}", // URL with parameters
new { controller = "State", action = "SaveState", file = UrlParameter.Optional, state = UrlParameter.Optional } // Parameter defaults
);
routes.MapRoute(
"DPStateRoute", // Route name
"DecisionPoint/ApplicationState/{file}/{state}", // URL with parameters
new { controller = "DecisionPoint", action = "ApplicationState", file = UrlParameter.Optional, state = UrlParameter.Optional } // Parameter defaults
);
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
);
}
protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();
RegisterRoutes(RouteTable.Routes);
// RouteDebug.RouteDebugger.RewriteRoutesForTesting(RouteTable.Routes);
}
}
所以我難倒..
呵呵......我看不出有什麼特別的錯誤:/ – 2011-05-16 01:39:57
你可以在該控制器中執行任何其他操作嗎?在那裏拋出索引動作,看看你是否擊中了控制器。你有一個控制器構造函數嗎?在那裏放置一個斷點,看看它是否觸及了這一點。 – BZink 2011-05-16 03:41:46
請顯示控制器代碼。 – Haacked 2011-06-26 05:46:05