ビューで作成したリストを表示しようとしていますが、「辞書に渡されるモデルアイテムのタイプは 'System.Collections.Generic.List1[System.String]', but this dictionary requires a model item of type 'System.Collections.Generic.IEnumerable
1 [Standings.Models.Teams]」です。
私のコントローラー:
public class HomeController : Controller
{
Teams tm = new Teams();
public ActionResult Index()
{
var model = tm.Name.ToList();
model.Add("Manchester United");
model.Add("Chelsea");
model.Add("Manchester City");
model.Add("Arsenal");
model.Add("Liverpool");
model.Add("Tottenham");
return View(model);
}
私のモデル:
public class Teams
{
public int Position { get; set; }
public string HomeGround {get; set;}
public string NickName {get; set;}
public int Founded { get; set; }
public List<string> Name = new List<string>();
}
私の見解:
@model IEnumerable<Standings.Models.Teams>
@{
ViewBag.Title = "Standings";
}
@foreach (var item in Model)
{
<div>
@item.Name
<hr />
</div>
}
助けていただければ幸いです:)
アクションメソッドはモデルタイプをasList<string>
と見なします。しかし、あなたの見解では、IEnumerable<Standings.Models.Teams>
を待っています。ビューのモデルをList<string>
に変更すると、この問題を解決できます。
しかし、最善の方法は、アクションメソッドからIEnumerable<Standings.Models.Teams>
をモデルとして返すことです。その後、ビューのモデルタイプを変更する必要はありません。
But、私の意見では、モデルは正しく実装されていません。次のように変更することをお勧めします。
public class Team
{
public int Position { get; set; }
public string HomeGround {get; set;}
public string NickName {get; set;}
public int Founded { get; set; }
public string Name { get; set; }
}
次に、アクションメソッドを次のように変更する必要があります。
public ActionResult Index()
{
var model = new List<Team>();
model.Add(new Team { Name = "MU"});
model.Add(new Team { Name = "Chelsea"});
...
return View(model);
}
そして、あなたの見解:
@model IEnumerable<Standings.Models.Team>
@{
ViewBag.Title = "Standings";
}
@foreach (var item in Model)
{
<div>
@item.Name
<hr />
</div>
}
ビューに間違ったモードを渡している。ビューは_@model IEnumerable<Standings.Models.Teams>
_を探しており、var model = tm.Name.ToList();
名前リストを渡しています。 Teamsのリストを渡す必要があります。
次のモデルを渡す必要があります
_var model = new List<Teams>();
model.Add(new Teams { Name = new List<string>(){"Sky","ABC"}});
model.Add(new Teams { Name = new List<string>(){"John","XYZ"} });
return View(model);
_