在一种方法中使用一种形式获取多个按钮的值
Get the value for multiple button with one form in one method
我正在使用新的 .NET Core Razor Pages。如果我有多个按钮,如何获取每个按钮的值?
示例在我的剃刀页面中,我有 2 个按钮:
<form method="post">
<button type="submit" value="2020" id="btn1">2020</button>
<button type="submit" value="2019" id="btn2">2019</button>
</form>
在我后面的代码中:
public void OnPost()
{
// How to get btn1 value (2020) and btn2 value (2019) here?
}
正如约翰所说,您只能检索用于提交表单的按钮的值。
如果你想 post 两个按钮,将它们放入隐藏变量是一个很好的方法。
注意: 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>
另一种方法是使用jquery自动添加输入:
<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...
}
结果:
我正在使用新的 .NET Core Razor Pages。如果我有多个按钮,如何获取每个按钮的值?
示例在我的剃刀页面中,我有 2 个按钮:
<form method="post">
<button type="submit" value="2020" id="btn1">2020</button>
<button type="submit" value="2019" id="btn2">2019</button>
</form>
在我后面的代码中:
public void OnPost()
{
// How to get btn1 value (2020) and btn2 value (2019) here?
}
正如约翰所说,您只能检索用于提交表单的按钮的值。 如果你想 post 两个按钮,将它们放入隐藏变量是一个很好的方法。
注意: 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>
另一种方法是使用jquery自动添加输入:
<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...
}
结果: