获取 Razor Pages Asp.net 中按钮的 "name" / "value" 的内在价值 Asp.net 6

Getting Inner Value of "name" / "value" of button in Razor Pages Asp.net 6

正在做某事并卡在了这里:

我的 Razor 页面如下所示:

 <tbody>
         @foreach(var item in Model.Terminy)
        {
            <tr>
            <form method="post"> <td> <center><button asp-page-handler="edit" class="btn btn-success" value="@item.Dzień_Tygodnia">@item.Dzień_Tygodnia</button><br /></center></td></form>
           <form method="post"><td> <center><button asp-page-handler="edit" class="btn btn-success" name="@item.Dzień_Tygodnia" value="@item.Godzina">@item.Godzina</button></center></td></form>
           <form method="post"> <td> <center><button asp-page-handler="edit" class="btn btn-success" name="@item.Dzień_Tygodnia" value="@item.Godzina1">@item.Godzina1</button></center></td></form>
           <form method="post"> <td> <center><button asp-page-handler="edit" class="btn btn-success" name="@item.Dzień_Tygodnia" value="@item.Godzina2">@item.Godzina2</button></center></td></form>
           <form method="post"> <td> <center><button asp-page-handler="edit" class="btn btn-success" name="@item.Dzień_Tygodnia" value="@item.Godzina3">@item.Godzina3</button></center></td></form>
           <form method="post"> <td> <center><button asp-page-handler="edit" class="btn btn-success" name="@item.Dzień_Tygodnia" value="@item.Godzina4">@item.Godzina4</button></center></td></form>
            <form method="post"> <td> <center><button asp-page-handler="edit" class="btn btn-success" name="@item.Dzień_Tygodnia" value="@item.Godzina5">@item.Godzina5</button></center></td></form>
             <form method="post"><td> <center><button asp-page-handler="edit" class="btn btn-success" name="@item.Dzień_Tygodnia" value="@item.Godzina6">@item.Godzina6</button></center></td></form>
            <form method="post"> <td> <center><button asp-page-handler="edit" class="btn btn-success" name="@item.Dzień_Tygodnia" value="@item.Godzina7">@item.Godzina7</button></center></td></form>
             <form method="post"><td> <center><button asp-page-handler="edit" class="btn btn-success" name="@item.Dzień_Tygodnia" value="@item.Godzina8">@item.Godzina8</button></center></td></form>
             <form method="post"><td> <center><button asp-page-handler="edit" class="btn btn-success" name="@item.Dzień_Tygodnia" value="@item.Godzina9">@item.Godzina9</button></center></td></form>
            </tr>
        }
        
    </tbody>

这是单个元素:

<form method="post"><td> <center><button asp-page-handler="edit" class="btn btn-success" name="@item.Dzień_Tygodnia" value="@item.Godzina">@item.Godzina</button></center></td></form>

现在的情况是: 在我的 OnPostAsync 方法的模型 class 中,我需要在单击按钮后获取“值”和“名称”的内部值。

public async Task<IActionResult> OnPostAsync()
        
{

}

从 5P.M 开始一直坚持到这里,现在是 7P.M,但一无所获。希望你们能帮我找到这个。会很棒的。

我想你可能误解了表单提交。它只能post input/select/textarea 元素的值。而且它不能 post name 属性的值到后端。 name属性用于模型绑定,绑定属性与name属性值同名的

一种方法是为每个表单添加隐藏的两个输入:

@page
@model IndexModel

<table>
    <tbody>
         @foreach(var item in Model.Terminy)
        {
            <tr>
            <form method="post"> 
                <td> 
                    <center>
                        <input name="Dzień_Tygodnia" value="@item.Dzień_Tygodnia" hidden/>
                        <button asp-page-handler="edit" class="btn btn-success" value="@item.Dzień_Tygodnia">@item.Dzień_Tygodnia</button><br />
                    </center>
                </td>
           </form>
           <form method="post">
               <td> 
                   <center>
                       <input name="Dzień_Tygodnia" value="@item.Dzień_Tygodnia" hidden/>
                       <input name="Godzina" value="@item.Godzina" hidden/>
                       <button asp-page-handler="edit" class="btn btn-success" name="@item.Dzień_Tygodnia" value="@item.Godzina">@item.Godzina</button>
                   </center>
               </td>
            </form>
           <form method="post"> 
               <td> 
                   <center>
                       <input name="Dzień_Tygodnia" value="@item.Dzień_Tygodnia" hidden/>
                       <input name="Godzina1" value="@item.Godzina1" hidden/>
                       <button asp-page-handler="edit" class="btn btn-success" name="@item.Dzień_Tygodnia" value="@item.Godzina1">@item.Godzina1</button>
           </center></td></form>
           <form method="post"> <td> <center>
               <input name="Dzień_Tygodnia" value="@item.Dzień_Tygodnia" hidden/>
               <input name="Godzina2" value="@item.Godzina2" hidden/>
               <button asp-page-handler="edit" class="btn btn-success" name="@item.Dzień_Tygodnia" value="@item.Godzina2">@item.Godzina2</button></center></td></form>
           <form method="post"> <td> <center>
               <input name="Dzień_Tygodnia" value="@item.Dzień_Tygodnia" hidden/>
                <input name="Godzina3" value="@item.Godzina3" hidden/>
               <button asp-page-handler="edit" class="btn btn-success" name="@item.Dzień_Tygodnia" value="@item.Godzina3">@item.Godzina3</button></center></td></form>
            </tr>
       //more forms..........
        }
        
    </tbody>
</table>

后端:

public IActionResult OnPostEdit(Terminy model)
{
    //do your stuff.........
    
}

型号:

public class Terminy
{
    public string Dzień_Tygodnia { get; set; }
    public string Godzina { get; set; }
    public string Godzina1 { get; set; }
    public string Godzina2 { get; set; }
    public string Godzina3 { get; set; }
    //other properties...........
}

另一种方法是你可以使用asp-route-{value} tag helper:

@page
@model IndexModel

<table>
    <tbody>
        @foreach(var item in Model.Terminy)
        {
            <tr>
            <form method="post"> <td> <center><button class="btn btn-success" asp-route-name="" asp-route-value="@item.Dzień_Tygodnia">@item.Dzień_Tygodnia</button><br /></center></td></form>
           <form method="post"><td> <center><button class="btn btn-success" asp-route-name="@item.Dzień_Tygodnia" asp-route-value="@item.Godzina">@item.Godzina</button></center></td></form>
           <form method="post"> <td> <center><button class="btn btn-success" asp-route-name="@item.Dzień_Tygodnia" asp-route-value="@item.Godzina1">@item.Godzina1</button></center></td></form>
           <form method="post"> <td> <center><button class="btn btn-success" asp-route-name="@item.Dzień_Tygodnia" asp-route-value="@item.Godzina2">@item.Godzina2</button></center></td></form>
           <form method="post"> <td> <center><button class="btn btn-success" asp-route-name="@item.Dzień_Tygodnia" asp-route-value="@item.Godzina3">@item.Godzina3</button></center></td></form>
           @*//other forms...........             *@
            </tr>
        }
        
    </tbody>
</table>

后端:

public async Task<IActionResult> OnPostAsync(string name,string value)
{
    //do your stuff.........
}