Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/286.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# .NetCore 2.0-MVC视图错误-IEnumerable_C#_Asp.net Core Mvc - Fatal编程技术网

C# .NetCore 2.0-MVC视图错误-IEnumerable

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

我正在创建一个基本的CRUD应用程序。在我的详细信息视图中,根据屏幕截图,我有一个错误

我创建了一个ViewModel来显示我的索引视图。(多个成员)。我试图重用该ViewModel以显示详细信息视图(单个成员)

有人能看出我做错了什么吗:

以下是我的详细信息视图:

    @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> |