C# .NetCore 2.0-MVC视图错误-IEnumerable
我正在创建一个基本的CRUD应用程序。在我的详细信息视图中,根据屏幕截图,我有一个错误 我创建了一个ViewModel来显示我的索引视图。(多个成员)。我试图重用该ViewModel以显示详细信息视图(单个成员) 有人能看出我做错了什么吗: 以下是我的详细信息视图:C# .NetCore 2.0-MVC视图错误-IEnumerable,c#,asp.net-core-mvc,C#,Asp.net Core Mvc,我正在创建一个基本的CRUD应用程序。在我的详细信息视图中,根据屏幕截图,我有一个错误 我创建了一个ViewModel来显示我的索引视图。(多个成员)。我试图重用该ViewModel以显示详细信息视图(单个成员) 有人能看出我做错了什么吗: 以下是我的详细信息视图: @model IEnumerable<GymTracker.ViewModel.MemberViewModel> @{ ViewData["Title"] = "Details"; } <h2
@model IEnumerable<GymTracker.ViewModel.MemberViewModel>
@{
ViewData["Title"] = "Details";
}
<h2>Details</h2>
@foreach (var item in Model)
{
<div>
<h4>Member</h4>
<hr />
<dl class="dl-horizontal">
<dt>
@Html.DisplayNameFor(model => model.FirstName)
</dt>
<dd>
@Html.DisplayFor(modelItem => item.FirstName)
</dd>
<dt>
@Html.DisplayNameFor(model => model.LastName)
</dt>
<dd>
@Html.DisplayFor(modelItem => item.LastName)
</dd>
<dt>
@Html.DisplayNameFor(model => model.DateOfBirth)
</dt>
<dd>
@Html.DisplayFor(modelItem => item.DateOfBirth)
</dd>
<dt>
@Html.DisplayNameFor(model => model.PaymentType)
</dt>
<dd>
@Html.DisplayFor(modelItem => item.PaymentType)
</dd>
</dl>
</div>
<div>
<a asp-action="Edit" asp-route-id="@Model.MemberID">Edit</a> |
<a asp-action="Index">Back to List</a>
</div>
}
任何帮助都将不胜感激,谢谢
Model
以下是顺序(IEnumerable
);IEnumerable
实际上没有该属性(@Model.MemberID
)-但是,序列中的每个项可能都有
你的意思可能是:
@item.MemberID
或者,如果您真的想返回整个项目序列,则需要使用以下内容:
@foreach(var x in Model) {
// do something with x
}
或者只是
@(Model.First().MemberID)
或者类似的在您的视图中,您需要的MemberViewModel列表是您的
@Model
,您正试图访问MemberViewModel列表上的MemberID
,这会导致问题
你可以这样做
<a asp-action="Edit" asp-route-id="@item.MemberID">Edit</a>
编辑
或者,如果要为所有表项设置第一个MemberID。试试这个:
<a asp-action="Edit" asp-route-id="@Model.FirstOrDefault().MemberID">Edit</a>
编辑
试试看
编辑|
您的
Model
是MemberViewModel
的IEnumerable,因此它没有MemberID属性。您正在为每个循环呈现该链接,因此需要使用项
变量尝试以下操作:编辑|
@Metzer,如果您认为此答案解决了您的问题。请接受这个答案。谢谢@没关系,我不认为奇怪的反对票会对我有多大影响:)
<a asp-action="Edit" asp-route-id="@item.MemberID">Edit</a>
<a asp-action="Edit" asp-route-id="@Model.FirstOrDefault().MemberID">Edit</a>
<a asp-action="Edit" asp-route-id="@item.MemberID">Edit</a> |