我有表格,有两个按钮:
<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;
如何传递给我的控制器,或者其他值,取决于按钮?
<button type="submit" ?????? >Save</button>
应该在这里做什么?
我正在使用Asp.Net Core,使用此控制器:
public IActionResult Crud(string bookInput)
{
//removed code for brevity
}
答案 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>
与其他输入一样,该按钮可以具有name
和value
属性,该属性将在提交时提交给您的后端。只有单击的按钮才会发送其值。您需要使用您正在使用的任何机制来访问名为action
的POSTed变量(在此示例中)。然后只需打开它是否等于save
或save-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>