获得“名称”的内部价值。 /&quot'剃须刀中的按钮ASP.NET 6

发布于 2025-01-31 21:36:56 字数 3391 浏览 2 评论 0原文

处理某事并坚持下去:

我的剃须刀页面看起来像这样:

 <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方法上的模型类中,我需要在单击按钮后获得“值”和“名称”的内部值。

public async Task<IActionResult> OnPostAsync()
        
{

}

自下午5点以来一直坚持到此,现在是晚上7点,什么也没发现。希望你们能帮助我找到这个。会很奇怪。

working on something and stuck at this:

My Razor Page looks like this:

 <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>

This is single element:

<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>

Now the thing is:
In Model class on my OnPostAsync method i need to get inner value of "value" and "name" after click on button.

public async Task<IActionResult> OnPostAsync()
        
{

}

Stuck at this since 5P.M and now is 7P.M and found nothing. Hope you guys can help me find this out. Will be greatful.

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

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

发布评论

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

评论(1

静谧幽蓝 2025-02-07 21:36:56

我认为您可能会误解表格提交。它只能发布输入/的值/textarea元素。并且它不能将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}标签助手

@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.........
}

I think you may misunderstand form submit. It can only post the value of input/select/textarea element. And it cannot post the name attribute's value to the backend. name attribute is used for model binding, bind the property with the same name of the name attribute value.

One way is to add hidden two inputs to every form:

@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>

Backend:

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

Model:

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...........
}

Another way is that you can use 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>

Backend:

public async Task<IActionResult> OnPostAsync(string name,string value)
{
    //do your stuff.........
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文