Vou demonstrar de uma forma bem simples como podemos trabalhar com mais de um botão do tipo Submit na mesma View, ressaltando que as requisições serão feitas para apenas uma Action.

Basicamente você precisa apenas definir os botões que a página possuir com o mesmo nome, diferenciando apenas o Value.

Vamos definir o seguinte Modelo para nossa View:

public class AcaoModel
{
      //Campos do Modelo
 
      public string Submit { get; set; }
}

Vou criar agora uma classe estática apenas para a exibição dos tipos de botões disponíveis:

public static class Botoes
{
     public const string Submit1 = "Submit1";
     public const string Submit2 = "Submit2";
}

Nossa View vai possuir a seguinte estrutura:

<form action="/Home/Acao" method="post">
 
    <%= Html.TextBox("campo1") %>
    <%= Html.TextBox("campo2") %>
    <%= Html.TextBox("campo3") %>
    <%= Html.TextBox("campo4") %>
 
    <button type="submit" name="Submit" value="<%= Botoes.Submit1 %>">Botão Submit 1</button>
    <button type="submit" name="Submit" value="<%= Botoes.Submit2 %>">Botão Submit 2</button>
 
</form>

E por fim em nosso Controller o seguinte código:

[HttpPost]
public ActionResult Acao(AcaoModel model)
{
    switch (model.Submit)
    {
        case Botoes.Submit1:
            //Lógica
            break;
 
        case Botoes.Submit2:
            //Lógica
            break;
    }
 
    return View();
}

NOTA: Caso não deseje criar a propriedade Submit em seu Model, você pode obte-lo diretamente pelo controller com o código Request.Form["Submit"]


Rafael Zaccanini
MTAC – Microsoft Technical Audience Contributor

Blog: http://www.rafaelzaccanini.net
Twitter: 
@rafaelzaccanini
Facebook: http://www.facebook.com/RafaelZaccaniniNet