2016-04-10 1 views
-1

私の製品のI私の削除や編集のためのブローURLを使用すると、詳細mvcでネストされたアクションを作成するには?

はlocalhost:3891 /管理者/ ShowProduct /削除/ ID adminIdに= 12

はlocalhost:?3891 /管理者/ ShowProduct /編集/ ID adminIdに= 12

はlocalhost:?3891 /管理者/ ShowProduct /詳細/ ID adminIdに= 12

私はRouteConfig用ブローコードを試してみました:?

routes.MapRoute(
      name: "Administrtor", 
      url: "Administrator/ShowProduct/{action}/{id}", 
      defaults: new { controller = "Administrator", action = "ShowProduct", id = UrlParameter.Optional } 

      ); 

私のコントローラが管理者であり、私の行動は、私がShowProductの別のアクションサブセットを作成するにはどうすればよいShowProduct

のですか?

答えて

0

私はasp.net-mvcでこのように最初にプロジェクト名を右クリックしてAreaを選択し、AreaフォルダとAdd Areaを右クリックしてAreaの名前を入力します:Administrator

すべてのエリアは、私の場合で、コントローラのモデル、ビュー、コントローラ

を持っている:右のコントローラ]フォルダをクリックして、この名前に

を ShowProductを入力して、今、私は編集のような、それのために任意のアクションを書くことができ、削除、および詳細

1

[削除]、[編集]、[詳細]の各アクションを持つAdministratorという名前のコントローラを作成できます。

ルートコード

routes.MapRoute(
     name: "Administrtor", 
     url: "Administrator/ShowProduct/{action}/{id}", 
     defaults: new { controller = "Administrator", action = "Delete", id = UrlParameter.Optional } 

     ); 

コントローラコード

public class AdministratorController : Controller 
{ 
    public ActionResult Delete(int adminId) 
    { 
     return View(); 
    } 

    public ActionResult Details(int adminid) 
    { 
     return View(); 
    } 
    public ActionResult Edit(int adminid) 
    { 
     return View(); 
    } 
} 

生成されたURL

http://localhost:64922/Administrator/showproduct/Edit/1 http://localhost:64922/Administrator/showproduct/Details/1 http://localhost:64922/Administrator/showproduct/Delete/1

adminIdをURL(?adminId =)に表示する場合は、adminIdをルートのIdに変更します。

+0

ShowProductは私の製品のリストを含むアクションであり、このリストの各アイテムには編集と削除が含まれています。 –

+0

通常、リアルタイムWebアプリケーションでは、製品のリストを管理するリポジトリがあります。製品は、データベースにあるか、何らかのサービスによって管理されている可能性があります。コントローラの代わりに製品のリストを管理するのはコントローラの責任ではなくコントローラは製品のリストに対して操作(たとえば、追加、編集、削除、詳細など)を実行するアクションメソッドを定義します。したがって、ProductRepositoryというRepositoryクラスのコントローラの外にProductリストを定義する必要があります。 –

関連する問題