0

これは簡単なことですが、理解できません:(

次のエラーが表示されます。

ディクショナリに渡されたモデル項目は、'System.Collections.Generic.List 1[<>f__AnonymousType35[System.String,System.String,System.String,System.Nullable 1[System.DateTime],System.String]]', but this dictionary requires a model item of type 'System.Collections.Generic.IEnumerable1[MvcApplication3.Order]'' 型です。

これが私のコントローラーのコードです:

    var query = from o in db.Orders
                join c in db.Customers on o.CustomerID equals c.CustomerID
                where o.CustomerID == q
                select new
                {
                    o.CustomerID,
                    o.ShipAddress,
                    o.ShipCity,
                    o.ShippedDate,
                    c.ContactName
                };

    /*
    var query = from o in db.Orders
                where o.CustomerID == q
                select o;
    */
    return View(query.ToList());

これが私の見解です:

@model IEnumerable<MvcApplication3.Order>


@{
    ViewBag.Title = "Search";
}

<h2>Search</h2>
Your search results contains @Model.Count() rows

<table>
    <tr>
        <td>Customer ID</td>
        <td>Address</td>
        <td>City</td>
        <td>Shipped to Date</td>
    </tr>
@foreach (var item in Model)
{
    <tr>
        <td>@item.CustomerID</td>
        <td>@item.ShipAddress</td>
        <td>@item.ShipCity</td>
        <td>@item.ShippedDate</td>
        <td>@item.Customer.ContactName</td>

    </tr>
}
</table>

ビューのセットアップ方法と関係があると思います。return View() を削除し、コントローラーからのデータをループするだけで、期待どおりの結果が得られます。どんな助けでも大歓迎です。

前もって感謝します!

4

2 に答える 2

1

編集:

これを試して:

select new Order()
                    {
                        CustomerId = o.CustomerID,
                        ShipAddress = o.ShipAddress,
                        ShipCity = o.ShipCity,
                        ShippedDate = o.ShippedDate,
                        Customer = new Customer()
                              {
                                 ContactName = c.ContactName
                              }
                    };

モデルを指定していません。List匿名オブジェクトを作成しましたが、ビューはを期待していIEnumerable<Order>ます。

于 2012-12-16T20:03:21.977 に答える