使用提交按钮传递其他数据

时间:2016-06-22 16:19:25

标签: html asp.net-core

我有表格,有两个按钮:



 <form action="/Book/Crud" method="post">
        <input type="text" name="bookInput" />  
        <button type="submit">Save</button>
        <button type="submit">Save and exit</button>
    </form>
&#13;
&#13;
&#13;

如何传递给我的控制器,或者其他值,取决于按钮? <button type="submit" ?????? >Save</button>应该在这里做什么?

我正在使用Asp.Net Core,使用此控制器:

public IActionResult Crud(string bookInput)
{
    //removed code for brevity
}

5 个答案:

答案 0 :(得分:2)

您可以使用jquery来解决问题:

<强> CSHTML

<form action="/Book/Crud" method="post">
        <input type="text" name="bookInput" />  
        <button type="submit" name="Submit">Save</button>
        <button type="submit" name="SubmitAndExit">Save and exit</button>
</form> 

<强> jquery的

$("form").submit(function () {
     var btn = $(this).find("input[type=submit]:focus" );
     var btnName = btn.attr('name');
     var input = $("<input>")
           .attr("name", "btnName").val(btnName);
     $(this).append(input);
     return true;
});

答案 1 :(得分:2)

鲍比·杰克的答案是正确的。我将详细说明此答案,以显示如何从控制器内部访问此输入。如果您使用以下HTML:

<form action="/Book/Crud" method="post">
    <input type="text" name="bookInput" />  
    <button name="action" value="save" type="submit">Save</button>
    <button name="action" value="save-exit" type="submit">Save and exit</button>
</form>

您可以通过在控制器中定义另一个参数来达到以下值:“ save”和“ save-exit”:

// The parameter 'action' is what will contain the values specified in the button.
public IActionResult Crud(string bookInput, string action)
{
    // Implementation
}

参数的名称必须与表单按钮的“名称”属性中的值相对应(在本例中为“操作”)。单击该按钮时,ASP.net会自动将'value'属性的值分配给控制器参数。更具体地说,控制器参数“操作”将具有从属性“值”中检索到的值“保存”或“保存退出”。

答案 2 :(得分:1)

<form action="/Book/Crud" method="post">
    <input type="text" name="bookInput" />  
    <button name="action" value="save" type="submit">Save</button>
    <button name="action" value="save-exit" type="submit">Save and exit</button>
</form>

与其他输入一样,该按钮可以具有namevalue属性,该属性将在提交时提交给您的后端。只有单击的按钮才会发送其值。您需要使用您正在使用的任何机制来访问名为action的POSTed变量(在此示例中)。然后只需打开它是否等于savesave-exit并执行相关功能。

答案 3 :(得分:0)

添加不同的名称

<button type="submit" name="save">Save</button>
<button type="submit" name="saveExit">Save and exit</button>

答案 4 :(得分:0)

来自VB.net的例子:

<asp:Button id="cmdKeyphraseAdd" runat="server" Text="Add Keyphrase" onclick="cmdKeyphraseAdd_Click"></asp:Button>