1. ホーム
  2. asp.net-mvc

[解決済み] MVC 3 - 辞書に渡されたモデル項目の型は 'System.Collections.Generic.List`1 です。

2022-03-01 07:53:33

質問

こんにちは、私はmvcの非常に新しいですし、助けを必要とする 私はこれを作成しました

public ActionResult Index()
        {
            var joblist = (from s in _entities.TaleoJobs
                           group s by new { s.JobTitle}
                               into myGroup
                               where myGroup.Count() > 0
                               select new { myGroup.Key.JobTitle }
                               );
            return View(joblist.ToList()); 
        }

しかし、ビューを作成すると、次のようなエラーが発生します。

辞書に渡されたモデル項目は 'System.Collections.Generic.List' 型である。 1[<>f__AnonymousType0 1[System.String]] ですが、この辞書は 'System.Collections.Generic.IEnumerable`1[careers.TaleoJobs]' 型のモデル項目を要求しています。

以下は、ビューのコードです。

*@model IEnumerable<careers.TaleoJobs>
@{
    ViewBag.Title = "Index";
    Layout = "~/Views/Shared/_Layout.cshtml";
}
<h2>Index</h2>
<p>
    @Html.ActionLink("Create New", "Create")
</p>
<table>
    <tr>

        <th>
            JobTitle
        </th>

    </tr>
@foreach (var item in Model) {
    <tr>

        <td>
            @Html.DisplayFor(modelItem => item.JobTitle)
        </td>

    </tr>
}
</table>*

他の例も見てみたのですが、よくわからず困っています。

どのように解決するのですか?

リストを選択するとき、文字列であるJobTitleだけを選択しています。つまり、あなたのリストは確かに List<string> .

オブジェクト全体を選択するようにselectを更新するか。

var joblist = (from s in _entities.TaleoJobs
                           group s by new { s.JobTitle}
                               into myGroup
                               where myGroup.Count() > 0
                               select s
                               );

または、現在のselectはそのままに、viewのtypeを更新します。

IEnumerable<string>