C# 在一个方法中使用一个窗体获取多个按钮的值
我用的是新的。如果有多个按钮,如何获取每个按钮的值 例如,在我的剃须刀页面中,我有两个按钮:C# 在一个方法中使用一个窗体获取多个按钮的值,c#,asp.net-core,razor,asp.net-core-razor-pages,C#,Asp.net Core,Razor,Asp.net Core Razor Pages,我用的是新的。如果有多个按钮,如何获取每个按钮的值 例如,在我的剃须刀页面中,我有两个按钮: <form method="post"> <button type="submit" value="2020" id="btn1">2020</button> <button type="submit" va
<form method="post">
<button type="submit" value="2020" id="btn1">2020</button>
<button type="submit" value="2019" id="btn2">2019</button>
</form>
正如John所说,您只能检索用于提交表单的按钮的值。 如果您想发布这两个按钮,将它们放入隐藏变量是一个好方法 注意:asp.net核心模型绑定系统将根据html元素中的名称而不是id绑定值 一种方法是手动添加这些输入:
<form method="post">
<input hidden value="2020" name="btn1"/>
<input hidden value="2019" name="btn2"/>
<button type="submit" value="2020" id="btn1">2020</button>
<button type="submit" value="2019" id="btn2">2019</button>
</form>
结果:
在服务器端,您只能检索用于提交表单的按钮的值。如果需要传递其他值,我建议将它们放入同一表单中的隐藏变量中。
<form method="post">
<input hidden value="2020" name="btn1"/>
<input hidden value="2019" name="btn2"/>
<button type="submit" value="2020" id="btn1">2020</button>
<button type="submit" value="2019" id="btn2">2019</button>
</form>
<form method="post">
<button type="submit" value="2020" id="btn1">2020</button>
<button type="submit" value="2019" id="btn2">2019</button>
</form>
@section Scripts
{
<script>
$("form").submit(function () {
$("button[type=submit]").each(function (i) {
i++;
var value = $(this).val();
var input = $("<input>")
.attr("type", "hidden")
.attr("name", "btn" + i).val(value);
$('form').append(input);
});
});
</script>
}
public void OnPost(int btn1,int btn2)
{
//do your stuff...
}