/ / Como detectar qual botão de envio foi clicado em asp.net (mvc) - html, asp.net-mvc, botão, entrada, enviar

Como detectar qual botão de submissão foi clicado em asp.net (mvc) - html, asp.net-mvc, botão, entrada, enviar

Eu li muitas respostas que usam o valor de entrada do tipo enviar, mas minha coleção de botões de entrada precisa ter o mesmo texto. Outros usam Javascript, e estou tentando evitar isso também.

<input type="submit" value="Press This" name="submitButton" />

Não funciona porque todos eles precisam ser nomeados como "Pressione isto".

<button type="submit" value="12" name="submitButton">Press This</button>

Não funciona porque não posta o valor.

Existe alguma maneira de fazer o <button> envie seu valor ou altere o texto do <input type="submit"> então todos dizem o mesmo na página, embora tenhamvalores diferentes? Ou possivelmente até ocultar o valor numérico no atributo de valor do elemento de entrada e, em seguida, apenas remover o "Pressione isto" antes de usar o valor?

Talvez usando <input type="image" value="12" /> com uma imagem que diz "Pressione isto"?

Edit: Tentei o <input type="image"> e não funciona. Envia o formulário, mas não usa o atributo name para ir para a ação correta no controlador.

Edit2:Devo acrescentar também, o número de botões de envio é dinâmico e, portanto, não posso dar a eles todos os nomes diferentes e, em seguida, ver qual parâmetro no controlador teve um valor passado para ele. A menos que haja alguma maneira de fazer isso para um número desconhecido de botões ...

Respostas:

11 para resposta № 1

seus botões devem ter a seguinte aparência:

<button name="button" value="12">Press This</button>
<button name="button" value="13">Press That</button>

em seguida, coloque-os em ação

public ActionResult MyAction(string button)
{
if (button == "12"){
//Do this
}

if (button == "13"){
//Do that
}
}