2017-12-11 1 views
1

데이터베이스에서 직원을 가져오고 사용자가 세부 정보를 편집 할 수 있도록 매개 변수로 id를 사용하는 편집 작업 메서드를 만들려고합니다. 여기에는 편집 작업을위한 코드가 있습니다.매개 변수 문제가있는 MVC 5 라우팅

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)'메서드에 대해 nullable이 아닌 'System.Int32'형식의 매개 변수 'id'에 대한 null 항목입니다. 선택적 매개 변수는 참조 유형, 널 입력 가능 유형 또는 선택적 매개 변수로 선언되어야합니다. 매개 변수 이름 : 매개 변수는

+0

"Employee/Edit/100"은 완벽하게 작동하지만 URL에 ID를 제공하면 완벽하게 작동하지만 url이 id 매개 변수를 암시 적으로 취하도록합니다. – Kushal

답변

0

난 그냥

@ Html.ActionLink ("편집", "편집", 새 {/ * ID = 항목에서 색인 페이지에 편집에 대한 HTML 도우미 Actionlink을 편집 할 필요가 있었다. PrimaryKey * /}) |

@ Html.ActionLink ("편집", "편집", 새 {ID = item.ID}) |

이제 URL은 Employee 뷰의 색인 페이지에서 직접 id 값을 가져옵니다.