-1

C# と asp.net の学習の一環として、2 つのテーブルがあります。顧客と注文、および私の POCO での 1:m の関係。

public class Customer
{
public int CustID {get; set;}
public string FirstName {get; set;}
public string LastName {get; set;}
public List<Orders> orders {get; set;}
}

public class Orders
{
public int OrdersID {get; set;}
public int CustID {get; set;}
public string OrderName {get; set;}
public virtual Customer customer {get; set;}
}

ここで私の質問は、Customer インスタンスではなくOrders インスタンスから 1 つのビューに Customer と Orders の両方のリストを表示する方法です。

これは私のコントローラーにあるものです:

    namespace MvcApplication3.Controllers
{ 
    public class janController : Controller
    {
        private coContext db = new coContext();

     public ViewResult Index()
        {

        return View(db.customer.ToList());
    }

私のDbContextのコード:

    namespace MvcApplication3.Models
{
    public class coContext : DbContext
    {
        public DbSet<Customer> customers { get; set; }
        public DbSet<Orders> orders { get; set; }

    }
}

私の部分的なビューには以下のコードがあります:

 @model List<MvcApplication3.Models.Customer>
 @foreach(var customer in Model) {
    <div>Display customer props:</div>
    @Html.DisplayFor(m => customer.LastName)

    <div>Display Orders:
        **@foreach(var order in customer.Orders)** {
            <div>Display some order props:
              @Html.DisplayFor(m => order.OrderName)
            </div>
        }
    </div>
}

顧客インスタンスから子プロパティまたはデータを表示するつもりです。簡単に言えば、顧客、つまり顧客の FirstName Lastname (これらは一意である必要があります) に基づいて関連データを読み取り、その後に関連データ (OrderName) を取得したいと考えています。それが私がやろうとしていることです。

4

2 に答える 2

1

答えとして「コメント」をまとめて書くことにしました。

http://coding-in.net/asp-net-mvc-3-how-to-use-editortemplates/

1 -あなたが忘れているかもしれないことは、遅延読み込みを使用するかどうかという事実です.EF4.X/5.X CodeFirstを使用しているかどうかに応じて、次のようなことをする必要があるかもしれません:

var res = db.Customers.where(x=>x.Deleted != null).include(x=>x.Orders).toList(); 

それ以外の場合 (すべての「子」プロパティを読み込まないと、ビューに表示できなくなります)

2- Sithelo > @emanyalpsid Emanyalpsid に感謝します。ビューに子プロパティをロードする方法。私はこの Html.DisplayFo(modelItem =>item.orders.OrderName を試しましたが、うまくいきました。

Jan ソリューションなど、さまざまな方法を使用できます。MVC エディター テンプレート: http://coding-in.net/asp-net-mvc-3-how-to-use-editortemplates/

于 2012-11-22T11:43:55.007 に答える