私は MVC ルーティングにまったく慣れていないので、これが些細すぎる場合はご容赦ください。
次のルートを作成しました。
routes.MapRoute("ProductSearch", "Category/{CategoryName}/{CategoryID}/{brandName}/{brandID}", new
{
controller = "Search",
action = "Search"
});
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
);
これはアクションに入ります
探す
少なくとも最初のラウンドでは問題ありません(正しいパラメーター値を使用)。その後、永遠にループし続け、パラメーターを失います。何が起こっているのでしょうか?
[編集] 問題は、私が 4 つのプレースホルダーを持っているという事実から来ているようです。2 つのプレースホルダーのみを設定すると、ルートが機能しました。
アクション:
public ActionResult Search(string query = null, int CategoryID = 0, int brandID = -1)
{
WebSearch search = null;
try
{
int loyaltyCardID = -1;
if (FocusStoreRemoting.UserInfo != null)
{
loyaltyCardID = FocusStoreRemoting.UserInfo.LoyaltyCardID;
}
if (query != null)
{
search = FocusStoreRemoting.Controller.DoWebSearch(FocusStoreRemoting.ClientSession.SessionID,
FocusStoreRemoting.StoreID, loyaltyCardID, queryString: query);
}
else if (CategoryID >= 0)
{
search = FocusStoreRemoting.Controller.DoWebSearch(FocusStoreRemoting.ClientSession.SessionID,
FocusStoreRemoting.StoreID, loyaltyCardID, groupID: CategoryID, brandID: brandID);
}
}
catch (Exception ex)
{
return RedirectToAction("DisplayError", "Error");
}
Session[SessionStrings.SearchItems] = search.StockItems;
return View(search.RefineCategories);
}
前もって感謝します。
[編集2]私が発見したことの1つは、それが永遠にループしているのではなく<head></head>
、ページのセクションにリストした各リンク(および外部ファイル)ファイルに対してループしていることです