ルーティング構成に問題があると思われます。以下は私の状況です:
状況
エンティティに関連付けられている従業員を一覧表示するページがあります。エンティティ ページから、新しい従業員を追加できます。従業員が追加されると、クリックして従業員に関する詳細情報を取得できます。
作成と追加情報は正常に機能し、従業員が作成され、ID が通常どおり増加します。
問題
従業員が作成され、1 文字を超える ID が割り当てられた場合 (10 人を超える従業員で発生するか、ASP.NET が ID を約 1000 程度ジャンプすることを決定した場合)、特定の従業員の詳細ビューに 404 が表示され、次のように表示されます。
「お探しのリソースは削除されたか、名前が変更されたか、一時的に利用できません。」
0 ~ 9 の範囲の ID は問題なく動作しているように見えますが、ID が 1 文字 (つまり 10) を超えるとすぐに問題が発生します。
RouteConfig.cs
routes.MapRoute(
"EmployeeDetails",
"{controller}/{id}-{Title}/{action}/{eid}",
new { controller = "Farm", action = "EmployeeDetails", id = UrlParameter.Optional, title = UrlParameter.Optional, eid = UrlParameter.Optional},
new { id = @"\d+", eid = @"\d" }
);
FarmsController.cs
public ActionResult Employee(int id = -1, int eid = -1)
{
if(id == -1 || eid == -1){
RedirectToAction("Index","Home");
}
Farm f = db.Farms.Find(id);
ViewBag.FarmName = f.Name;
ViewBag.FarmUrl = f.getLink(true);
Worker w = db.Workers.Find(eid);
w.TimeSheets = w.TimeSheets.OrderByDescending(m => m.TimeSheetID).ToList();
return View(w);
}
すべての関連情報を提供していない場合はお詫び申し上げます。初めてのポスターです。他に何か知っておく必要がある場合はお知らせください。
乾杯