を作成しようとしていますViewModel
。私のアプリでは、アカウントにエラーがある顧客のリストを表示したいと考えています。エラーは、別のプログラムによってデータベースに保存されます。
最終的な目的は、アカウント内のアイテムにエラーがある顧客に定期的にメッセージを送信することです (私たちは車両を扱っているため、ナンバー プレート チェックで問題が発生し、顧客の対応が必要な場合が例として挙げられます)。 .
ViewModel
CustomerAlerts.csという名前を作成しました
using MyProjectName.Models;
namespace MyProjectName.ViewModels
{
public class CustomerAlerts
{
public IEnumerable<string> companynames { get; set; }
}
}
コントローラー CustomerAlertsController.cs を作成しました。
private TestDB_FleetCompany_Dashboard_Entities db = new TestDB_FleetCompany_Dashboard_Entities();
public ActionResult Index()
{
var viewModel = new CustomerAlerts
{
companynames = (from v in db.Vehicles.Include(v => v.Company)
where v.Issue != null
select new { customernames = v.Company.Name }).Select(v => v.customernames).AsEnumerable()
};
return View(viewModel);
}
私の見解の一番上に私が持っている
@model IEnumerable<MyProjectName.ViewModels.CustomerAlerts>
影響を受ける会社名のリストを表示したいと思います (後で問題のある車両の数の列を追加する予定でした)。
@foreach (var affected in Model)
{
<tr>
<td>@Html.DisplayForModel(affected.companynames)</td>
<td></td>
</tr>
}
すべてを実行しようとすると、次のメッセージが返されます。
ディクショナリに渡されたモデル アイテムのタイプは 'MyProjectName.ViewModels.CustomerAlerts' ですが、このディクショナリにはタイプ 'System.Collections.Generic.IEnumerable`1[MyProjectName.ViewModels.CustomerAlerts]' のモデル アイテムが必要です。
解決策や少しの助けが欲しいのですが、自分で解決策を見つけるために何を読むべきかについての指針をいただければ幸いです。
私は試した:
return View(viewModel.AsEnumerable());
ただし、これにより、「AsEnumerable の定義が含まれていません」というエラーが発生します。