带有参数问题的 MVC 5 路由

MVC 5 routing with parameter issue

我正在尝试创建一个编辑操作方法,该方法将 id 作为参数以从数据库中获取员工并允许用户编辑 details.Here 是我的编辑操作代码。

public ActionResult Edit(int id)
        {

            EmployeeData eData = new EmployeeData();
            Employee employee = eData.Employees.Single(x => x.ID == id);
            return View(employee);
        }
    }

这是我的路由器配置

public static void RegisterRoutes(RouteCollection routes)
        {
            routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
            routes.MapMvcAttributeRoutes();

            routes.MapRoute(
                name: "Default",
                url: "{controller}/{action}/{id}",
                defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
            );

        }

我尝试使用属性路由,但仍然无法获得所需的结果result.And我收到此错误消息

参数字典包含 'WebApplication1.Controllers.EmployeeController' 中方法 'System.Web.Mvc.ActionResult Edit(Int32)' 的不可为空类型 'System.Int32' 的参数 'id' 的空条目。可选参数必须是引用类型、可空类型或声明为可选参数。 参数名称:parameters

我只需要在

的索引页面中编辑用于编辑的 Html 辅助操作链接

@Html.ActionLink("Edit", "Edit", new { /* id=item.PrimaryKey */}) |

@Html.ActionLink("Edit", "Edit", new { id=item.ID }) |

所以现在 URL 直接从 Employee 视图的索引页面获取 id 值。