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

发布于 2025-02-10 21:57:29 字数 1857 浏览 0 评论 0原文

我已经尝试了几种方法,并且由于我是ASP.NET核心的新手,因此我被阻止了。有人可以帮我吗?这一定是微不足道的,但我在谷歌搜索了很多东西,但找不到合适的方法。我不想使用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");
    }

I have tried several approaches, and as I'm new to Razor Pages in ASP.NET Core I'm blocked. Could anybody help me please? It must be something trivial but I googled quite a lot and I can't find a suitable way. I don't want to use jquery or any other javascript library.

Here is the relevant code:

<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");
    }

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

不顾 2025-02-17 21:57:29

如果要单击每个保存按钮以发送该行的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>  

IF you want to click each save button to send the Id of that row, You can just follow below simple demo without any jquery or any other javascript library.

<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>  
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文