2017-12-11 10 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 } 
      ); 

     } 

I私は

は、パラメータの辞書が含まれているこのエラーメッセージを取得しています希望result.Andを取得するには、属性のルーティング、まだできていないを使用してみました'WebApplication1.Controllers.EmployeeController'の 'System.Web.Mvc.ActionResult Edit(Int32)'メソッドで、nullableでない型 'System.Int32'のパラメータ 'id'のnullエントリ。オプションのパラメータは、参照型、null可能型、またはオプションのパラメータとして宣言する必要があります。 パラメータ名:パラメータが

+0

「Employee/Edit/100」は完全に機能しますが、URLにIDを明示的に指定すると完全に機能しますが、idパラメータを暗黙的に指定する必要があります。 – Kushal

答えて

0

私はちょうど

@ Html.ActionLink( "編集"、 "編集"、新しい{/ * ID =項目からインデックスページで編集するためのHTMLヘルパーActionLinkのを編集する必要がありました。 PrimaryKey * /})| Html.ActionLink( "編集"、 "編集"、新しい{ID = item.ID})@

|

URLは、従業員ビューのインデックスページから直接id値を取得します。

関連する問題