繁体   English   中英

如何在自定义构建的 ASP.NET Core Razor Pages 可编辑网格中发布行 ID?

[英]How do I post the row id in a custom built ASP.NET Core Razor Pages editable Grid?

我尝试了几种方法,但由于我是 ASP.NET Core 中 Razor Pages 的新手,所以我被阻止了。 有人可以帮我吗? 这一定是微不足道的,但我用谷歌搜索了很多,但找不到合适的方法。 我不想使用 jquery 或任何其他 javascript 库。

以下是相关代码:

<form method="post">
<table>
    <thead>
        <tr>
            <th>
                Text 1
            </th>
            <th>
                Text 2
            </th>
            <th>
                Text 3
            </th>
        </tr>
    </thead>
    <tbody>
        @foreach(var item in Model.GridRows)
        {
            <tr>
                <td>
                    <input type="hidden" asp-for="@item.Id" />
                </td>
                <td>
                    @Html.EditorFor(modelItem => item.Text1)
                </td>
                <td>
                    @Html.EditorFor(modelItem => item.Text2)
                </td>
                <td>
                    @Html.EditorFor(modelItem => item.Text3)
                </td>
                <td>
                   <input type="submit" value="Save" class="btn btn-primary"/>
                </td>
            </tr>
         }
      </tbody>  
 </table>          
 </form>

    public async Task<IActionResult> OnPostAsync(int id)
    {
        if (!ModelState.IsValid)
        {
            return Page();
        }

        var gridRowUpdate = await _context.GridRows.FindAsync(id);

        if (gridRowUpdate == null)
        {
            return NotFound();
        }

        if(await TryUpdateModelAsync<GridRow>(gridRowUpdate, "GridRow", g => g.Text1, g => g.Text2, g => g.Text3))
        {
            await _context.SaveChangesAsync();
        }
        
        return RedirectToPage("./Index");
    }

如果您想单击每个save按钮以发送该行的 Id,您可以按照下面的简单演示进行操作,无需任何 jquery 或任何其他 javascript 库。

<table>
        <thead>
            <tr>
                <th>
                    Text 1
                </th>
                <th>
                    Text 2
                </th>
                <th>
                    Text 3
                </th>
            </tr>
        </thead>
        <tbody>
        
        @foreach(var item in Model.test)
        {
            <form method="post" >
            <tr>
                <td>
                    <input type="hidden" name="Id" value="@item.Id" />
                </td>
                <td>
                    @Html.EditorFor(modelItem => item.Text1)
                </td>
                <td>
                    @Html.EditorFor(modelItem => item.Text2)
                </td>
                <td>
                    @Html.EditorFor(modelItem => item.Text3)
                </td>
                <td>
                   <input type="submit" value="Save" class="btn btn-primary"/>
                </td>
            </tr>
            </form>
         }
          
      </tbody>  
 </table>  

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM