.net core Action获取错误的Id

.net core Action获取错误的Id,.net-core,model-view-controller,razor,asp.net-core-mvc,.net Core,Model View Controller,Razor,Asp.net Core Mvc,我已经收到了日志消息。如果我想进入详细信息页面。Id始终作为值“1”返回 我错了什么 html页面(视图) 循环在表单中,提交操作用于提交整个表单 您的表单包含所有ID,因此当您提交时,您将提交一个ID集合 我建议您使用@Html.ActionLink 更改您的视图,如下所示 @model List<LogBerichtModel> <head> <meta charset="utf-8" /> <meta name

我已经收到了日志消息。如果我想进入详细信息页面。Id始终作为值“1”返回

我错了什么

html页面(视图)


循环在表单中,提交操作用于提交整个表单

您的表单包含所有ID,因此当您提交时,您将提交一个ID集合

我建议您使用
@Html.ActionLink

更改您的
视图
,如下所示

@model List<LogBerichtModel>

<head>
    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <link rel="stylesheet" href="~/lib/bootstrap/dist/css/bootstrap.min.css" />
    <link href="css/styles.css" rel="stylesheet" />
</head>
<body>
<div class="container">
        <div><h4>Logberichten</h4></div>
        <div class="row logs" id="app">
            <div class="mt-5 d-flex align-content-xl-stretch flex-column p-5">
                <table class="table table-striped m-2">
                    <thead>
                        <tr class="bg-primary-custom">
                             <th>@Html.DisplayNameFor(Model => Model[0].Bericht)</th>
                            <th>@Html.DisplayNameFor(Model => Model[0].Datum)</th>
                            <th>@Html.DisplayNameFor(Model => Model[0].Systeem)</th>
                            <td>@Html.DisplayNameFor(Model => Model[0].Klasse)</td>
                            <td>@Html.DisplayNameFor(Model => Model[0].Methode)</td>
                            <td>@Html.DisplayNameFor(Model => Model[0].Systeemmelding):</td>
                        <td></td>
                        </tr>
                    </thead>
                    @for (var item = 0; item < Model.Count; item++)
                    {
                        <tbody>
                            <tr style='background-color:@(item%2 == 0 ? "#FEF2F4":"#FEE2CA"  );'>
                                <td>@Html.DisplayFor(Model => Model[item].Bericht)</td>
                                <td>@Html.DisplayFor(Model => Model[item].Datum)</td>
                                <td>@Html.DisplayFor(Model => Model[item].Systeem)</td>
                                <td>@Html.DisplayFor(Model => Model[item].Klasse)</td>
                                <td>@Html.DisplayFor(Model => Model[item].Methode)</td>
                                <td>@Html.DisplayFor(Model => Model[item].Systeemmelding)</td>
                                <td>
                                    @Html.ActionLink("DetailInfo", "DetailInfo", "Home",  new { id = @Model[item].Id }, null)
                                </td>
                            </tr>
                        </tbody>
                    }
                </table>
            </div>
        </div>
    </div>
    <script src="~/lib/jquery/dist/jquery.min.js"></script>
    <script src="~/lib/bootstrap/dist/js/bootstrap.bundle.min.js"></script>
    <script src="~/js/site.js" asp-append-version="true"></script>
</body>
测试结果:


非常感谢您。。。它起作用了。让你的例子冷静下来。
    [HttpPost]
    public IActionResult DetailInfo(int id)
    //public IActionResult DetailInfo(LogBerichtModel logbericht)
    {
@model List<LogBerichtModel>

<head>
    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <link rel="stylesheet" href="~/lib/bootstrap/dist/css/bootstrap.min.css" />
    <link href="css/styles.css" rel="stylesheet" />
</head>
<body>
<div class="container">
        <div><h4>Logberichten</h4></div>
        <div class="row logs" id="app">
            <div class="mt-5 d-flex align-content-xl-stretch flex-column p-5">
                <table class="table table-striped m-2">
                    <thead>
                        <tr class="bg-primary-custom">
                             <th>@Html.DisplayNameFor(Model => Model[0].Bericht)</th>
                            <th>@Html.DisplayNameFor(Model => Model[0].Datum)</th>
                            <th>@Html.DisplayNameFor(Model => Model[0].Systeem)</th>
                            <td>@Html.DisplayNameFor(Model => Model[0].Klasse)</td>
                            <td>@Html.DisplayNameFor(Model => Model[0].Methode)</td>
                            <td>@Html.DisplayNameFor(Model => Model[0].Systeemmelding):</td>
                        <td></td>
                        </tr>
                    </thead>
                    @for (var item = 0; item < Model.Count; item++)
                    {
                        <tbody>
                            <tr style='background-color:@(item%2 == 0 ? "#FEF2F4":"#FEE2CA"  );'>
                                <td>@Html.DisplayFor(Model => Model[item].Bericht)</td>
                                <td>@Html.DisplayFor(Model => Model[item].Datum)</td>
                                <td>@Html.DisplayFor(Model => Model[item].Systeem)</td>
                                <td>@Html.DisplayFor(Model => Model[item].Klasse)</td>
                                <td>@Html.DisplayFor(Model => Model[item].Methode)</td>
                                <td>@Html.DisplayFor(Model => Model[item].Systeemmelding)</td>
                                <td>
                                    @Html.ActionLink("DetailInfo", "DetailInfo", "Home",  new { id = @Model[item].Id }, null)
                                </td>
                            </tr>
                        </tbody>
                    }
                </table>
            </div>
        </div>
    </div>
    <script src="~/lib/jquery/dist/jquery.min.js"></script>
    <script src="~/lib/bootstrap/dist/js/bootstrap.bundle.min.js"></script>
    <script src="~/js/site.js" asp-append-version="true"></script>
</body>
 [HttpGet]
 public IActionResult DetailInfo(int id)
{
}