ASP.NET MVC5 -顺序ID路由问题:当ID超过1个字符长404错误
本文关键字:ID 1个 超过 字符 错误 问题 MVC5 NET 顺序 ASP 路由 | 更新日期: 2023-09-27 18:13:04
我有一个小问题,我认为是与我的路由配置。以下是我的情况:
<<p> 情况/strong>我有一个页面,其中列出了附加到一个实体的雇员。他们可以从实体页面添加新员工。一旦添加了员工,就可以点击它们以获得有关该员工的深入信息。
创建和进一步的信息工作正常,员工被创建,他们的ID正常增加。
当创建一个员工并分配一个超过1个字符的ID时(这种情况发生在超过10个员工或ASP。. NET决定将ID跳转到指定员工的详细信息视图,并使用404显示:
"您正在查找的资源已被删除、名称已更改或暂时不可用。"
ID在0-9的范围内似乎没有任何问题,但一旦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);
}
提前感谢您的帮助,如果我没有提供所有相关信息,我深表歉意。第一次海报,如果你需要知道什么,请告诉我。
欢呼
你的约束应该是这样的:
new { id = @"'d+", eid = @"'d+" }
当前您正在使用正则表达式'd作为eid字段,这意味着只有一个符号