私はC#MVCの初心者ですが、私はいくつかのプロジェクトに取り組んでいます。C#MVCのビューでコントローラによって返されたオブジェクトを表示する
インターネットで検索したところ、私の質問に一致する解決策は見つかりませんでした。答えのどれも私の問題を解決しませんでした。問題は、どのようにすべてのプロジェクトをループするか(以下のコードの部分で分かるように)、それらを表示する方法です。
プロジェクトモデルコード:
public class AddProjectViewModel
{
[Required]
[StringLength(50, ErrorMessage = "Project name length is too long. Maximum lenght is 50 char.")]
public string ProjectName { get; set; }
[Required]
[StringLength(50, ErrorMessage = "Description length is too long. Maximum lenght is 50 char.")]
public string Description { get; set; }
}
プロジェクトのコントローラコード:
public ActionResult Index()
{
var loggedUser = _workContext.GetUserId();
var userProjects = _userProjectsRepository.GetAllEntity().Where(x => x.UserId == loggedUser);
var model = new Models.ProjectViewModels.ShowUserProjectsViewModel();
model.Projects = userProjects;
return View(model);
}
考え方は次のとおりです。アップ時にページが読み込まれると、ユーザーが見ることができますログインし、すべてのプロジェクトを表示します。
私はこのような何かを試してみたが、それは動作しません:
@model IEnumerable<CarPooling.Website.Models.ProjectViewModels>
@{
ViewBag.Title = "Index";
}
<h2>Index</h2>
@foreach (var item in Model)
{
<div>
<p>@Html.DisplayFor(m=>item)</p>
</div>
}
してください、私とすべての応答のためのおかげで我慢して。
それが動作しないのはなぜ?あなたは何が起こるべきか、実際に何が起こっているのか、そしてその2つはどう違うのですか? – yaakov
アプリケーションを壊すエラーは、辞書に渡されたモデルアイテムのタイプがIEnumerableではないと言っていました。しかし、私のモデルからIEnumerableを削除したとき、foreachは "CarPooling.Website.Models.ProjectViewModels 'は' CarPooling.Website.Models.ProjectViewModels '型の変数では動作しません。 'GetEnumerator' " – Dariel
_"のパブリック定義が含まれていますが、動作しません "_は適切な説明ではありません。複数のエラーがあり、例外の詳細を質問に含める必要があります。最初の例外は、ビューに渡すモデルが 'ShowUserProjectsViewModel'の単一インスタンスなので、ビューは' ProjectViewModels'のコレクションであると予測します –