0

私は多対多の関係を持っています:

会社 ------> 会社会場 <------ 会場

現在、会場を会社に、会社を会場に追加できます。

ここに画像の説明を入力 [会場の追加] リンクを使用すると、ユーザーは次のビューに移動します: (このコントローラー ロジックを使用):

var venue = context.Companies.Select(x => x.Venues.Where(xy => xy.VenueId == id));
var company = venue.Select(x => x.);
ViewData["CompanyFor"] = company;
ViewData["VenueFor"] = venue;

ここに画像の説明を入力ユーザーが会場を選択してADD VENUEボタン をクリックすると、ViewModel が Controller に戻されます。

Company c = context.Companies.Single(x => x.CompanyId == model.CompanyId);
Venue v = context.Venues.Single(x => x.VenueId == model.VenueId);
c.Venues.Add(v);
context.SaveChanges();

それが私が多対多の追加を実装した方法です。しかし、私は削除コントローラーコード/ビュー(必要な場合)/おそらくビューモデルに関するヘルプを探しています(ただし、単純なアクションに不可欠なものの必要性を実際には見ていません)

Company Details ビューで、[CompanyVenue] (many2many) 関係を削除するために、各会場アイテムの下にあるREMOVE リンクを取得しようとしています。

このタイプの ActionLink() を使用して、1 つではなく 2 つの値を渡すことができる場合:

@Html.ActionLink("Remove", "VenueRemove", new { Id = venue.VenueId }, new { Cid = model.CompanyId } )

それは簡単ですが、両方の値 ( Id と Cid ) を VenueRemove() コントローラー アクションに戻す方法 (load メソッド) がわかりませんでした。

誰かがそれを行う方法を知っているなら、私に知らせてください。(それに対するアンサーをありがとう、ダーリン)

私は先に進み、ビューを使用して作業を削除しました。

しかし、REMOVE リンク/ボタンをクリックするだけで削除を機能させ、ビューに移動せずに会場を削除する方法はありますか?

多分AJAXリクエストか何か.... ???

4

1 に答える 1

3

次のように、2 つのパラメーターをVenueRemoveアクションに渡すことができます。

@Html.ActionLink(
    "Remove", 
    "VenueRemove", 
    new { 
        Id = venue.VenueId, 
        Cid = model.CompanyId 
    }
)
于 2011-04-05T11:11:00.130 に答える