用一种方法获取一个表单的多个按钮的值

问题描述 投票:0回答:1

我正在使用新的 .NET Core Razor 页面。如果我有多个按钮,如何获取每个按钮的值?

以我的剃须刀页面为例,我有 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?
}
c# asp.net-core razor-pages
1个回答
1
投票

正如约翰所说,您只能检索用于提交表单的按钮的值。 如果你想发布这两个按钮,将它们放入隐藏变量是一个好方法。

注意: asp.net core 模型绑定系统将通过 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...
}

结果:

© www.soinside.com 2019 - 2024. All rights reserved.