C# 视图页面中的折叠面板显示所有按钮上的第一条记录 @foreach(模型中的var项目) { @DisplayFor(modeleItem=>item.Title) @DisplayNameFor(model=>model.Category) @DisplayFor(modelItem=>item.Category) @DisplayNameFor(model=>model.Budget) @DisplayFor(modelItem=>item.Budget) @DisplayNameFor(model=>model.EstimatedHours) @DisplayFor(modelItem=>item.EstimatedHours) @DisplayNameFor(model=>model.SuggestedSources) @DisplayFor(modelItem=>item.SuggestedSources) @DisplayNameFor(model=>model.ProposedDeadline) @DisplayFor(modelItem=>item.ProposedDeadline) @DisplayNameFor(model=>model.Details) @DisplayFor(modelItem=>item.Details) @DisplayNameFor(model=>model.Comments) @DisplayFor(modelItem=>item.Comments) @DisplayNameFor(model=>model.Status) @DisplayFor(modelItem=>item.Status) @DisplayFor(modelItem=>item.Category) @DisplayFor(modelItem=>item.Budget) @DisplayFor(modelItem=>item.Details) @DisplayFor(modelItem=>item.Status) }

C# 视图页面中的折叠面板显示所有按钮上的第一条记录 @foreach(模型中的var项目) { @DisplayFor(modeleItem=>item.Title) @DisplayNameFor(model=>model.Category) @DisplayFor(modelItem=>item.Category) @DisplayNameFor(model=>model.Budget) @DisplayFor(modelItem=>item.Budget) @DisplayNameFor(model=>model.EstimatedHours) @DisplayFor(modelItem=>item.EstimatedHours) @DisplayNameFor(model=>model.SuggestedSources) @DisplayFor(modelItem=>item.SuggestedSources) @DisplayNameFor(model=>model.ProposedDeadline) @DisplayFor(modelItem=>item.ProposedDeadline) @DisplayNameFor(model=>model.Details) @DisplayFor(modelItem=>item.Details) @DisplayNameFor(model=>model.Comments) @DisplayFor(modelItem=>item.Comments) @DisplayNameFor(model=>model.Status) @DisplayFor(modelItem=>item.Status) @DisplayFor(modelItem=>item.Category) @DisplayFor(modelItem=>item.Budget) @DisplayFor(modelItem=>item.Details) @DisplayFor(modelItem=>item.Status) },c#,javascript,asp.net-mvc-4,C#,Javascript,Asp.net Mvc 4,/*以上是我的代码。我想在标题点击时折叠。有几个标题,但在每个标题上单击“折叠”窗口会显示第一条记录。我应该怎么做才能显示各自的标题记录。*/如果您在for循环中将相同的id传递给错误的元素,则在您的页面中,everty锚定标记将具有数据目标viewdetails,因此它将始终使用viewdetialsid打开第一个div,浏览器将在DOM中找到该id 这样做: <table class="table" > @foreach (var item in Model)

/*以上是我的代码。我想在标题点击时折叠。有几个标题,但在每个标题上单击“折叠”窗口会显示第一条记录。我应该怎么做才能显示各自的标题记录。*/

如果您在for循环中将相同的id传递给错误的元素,则在您的页面中,everty锚定标记将具有数据目标viewdetails,因此它将始终使用viewdetialsid打开第一个div,浏览器将在DOM中找到该id

这样做:

    <table class="table" >
    @foreach (var item in Model)
    {
                <tr>

                    <td>
                    <a class="btn" data-toggle="collapse" data-target="#viewdetails_@item.Title">
                        @Html.DisplayFor(modelItem => item.Title)
                    </a>

                <div class="collapse" id="viewdetails_@item.Title">
                    <table>
                        <tr>
                            <th>@Html.DisplayNameFor(model => model.Category)</th>
                            <td>@Html.DisplayFor(modelItem => item.Category)</td>
                        </tr>
                        <tr>
                            <th>@Html.DisplayNameFor(model => model.Budget)</th>
                            <td>@Html.DisplayFor(modelItem => item.Budget)</td>
                        </tr>
                        <tr>
                            <th>@Html.DisplayNameFor(model => model.EstimatedHours)</th>
                            <td>@Html.DisplayFor(modelItem => item.EstimatedHours)</td>
                        </tr>
                        <tr>
                            <th>@Html.DisplayNameFor(model => model.SuggestedSources)</th>
                            <td>@Html.DisplayFor(modelItem => item.SuggestedSources)</td>
                        </tr>
                        <tr>
                            <th>@Html.DisplayNameFor(model => model.ProposedDeadline)</th>
                            <td>@Html.DisplayFor(modelItem => item.ProposedDeadline)</td>
                        </tr>
                        <tr>
                            <th>@Html.DisplayNameFor(model => model.Details)</th>
                            <td>@Html.DisplayFor(modelItem => item.Details)</td>
                        </tr>
                        <tr>
                            <th>@Html.DisplayNameFor(model => model.Comments)</th>
                            <td>@Html.DisplayFor(modelItem => item.Comments)</td>
                        </tr>
                        <tr>
                            <th>@Html.DisplayNameFor(model => model.Status)</th>
                            <td>@Html.DisplayFor(modelItem => item.Status)</td>
                        </tr>

                    </table>
                </div>

            </td>
                    <td>
                        @Html.DisplayFor(modelItem => item.Category)
                    </td>
                    <td>
                        @Html.DisplayFor(modelItem => item.Budget)
                    </td>

                    <td>
                        @Html.DisplayFor(modelItem => item.Details)
                    </td>

                    <td>
                        @Html.DisplayFor(modelItem => item.Status)
                    </td>
    </tr>
    }
    </table>

及在分区内:

<a class="btn" data-toggle="collapse" data-target="#viewdetails_@item.Id" onclick="">
<div class="collapse" id="viewdetails_@item.Id">

或者您可以使用列表项的IndexOf方法,并将其与ID一起传递:

及在分区内:

<a class="btn" data-toggle="collapse" data-target="#viewdetails_@item.Id" onclick="">
<div class="collapse" id="viewdetails_@item.Id">


现在还有另一个问题。你能不能提供小提琴,这样它就可以很容易地被纠正?我已经编辑了代码。请检查一下。如果你可以在jsfiddle.net上做一把小提琴,请先查看foreachIf内部