1

Music Store のチュートリアルに従って初めての MVC アプリを構築していますが、厳密に型指定されたビュー間でデータを渡そうとすると、いくつかの問題が発生しました。

独自の厳密に型指定されたビューを持つ 2 つのデータ型があります

お客様 お客様 サイト

顧客サイトのインデックス ビュー (多数の顧客サイトを返す) では、各サイト アドレスの横に顧客名を表示する必要があります。ビューは顧客サイトに厳密に型指定されていますが、顧客名は顧客テーブルに格納されているため、表示されません。モデルからこれに直接アクセスできますか?

ビューバッグを使用するオプションがあることはわかっています。次のコードを使用して、作成ビューのドロップダウン リストに顧客名を表示することに成功しました。

顧客サイト コントローラ/////////

public ActionResult Create()
    {
        ViewBag.Id = new SelectList(db.Customers, "Id", "CustomerName");
        return View();
    } 

インデックスビュー//////////

@Html.DropDownListFor(model => model.CustomerId,   (IEnumerable<SelectListItem>)ViewBag.Id)

これは正常に機能しますが、ドロップダウン リストではなく、テーブルの各行に顧客名を挿入する必要があります。顧客サイトのインデックス ビューのテーブルに表示される顧客名のリストを取得する方法について、誰か親切に教えてもらえますか?

また、viewbag はビュー間でデータを渡すための最良の方法ですか、それとも他の代替方法はありますか? 複数のデータ型を持つビューを強く型付けする方法はありますか?

誰もが提供できるアドバイスは素晴らしいでしょう。

敬具

リアム

4

1 に答える 1

1

あなたの質問のこの部分に答えて:

また、viewbag はビュー間でデータを渡すための最良の方法ですか、それとも他の代替方法はありますか? 複数のデータ型を持つビューを強く型付けする方法はありますか?

答えはイエスです。次のように新しいクラスを作成します。

public class SomeViewModel {
    public Customer SomeCustomer { get; set; }

    public CustomerSite SomeCustomerSite { get; set; }
}

それをビューに渡し、モデルを介して両方のデータ型にアクセスできます。

于 2011-05-05T12:58:18.240 に答える