You can't really. You could potentially manufacture some JS solution that would switch out the action based on what button is clicked, but as far as a basic form goes, there's no way to change the action conditionally.
However, you can name your submit buttons and then branch within a single action. For example:
<button type="submit" name="SaveProgress">Save Current Progress</button>
<button type="submit" name="SaveFinal">Save Final Version</button>
Then, in your one action:
if (Request["SaveProgress"] != null)
{
// save progress
}
if (Request["SaveFinal"] != null)
{
// save final
}
Since only the button that is clicked will make it into the post data, you can use the presence of the button's name to determine which the user clicked.
One final option is to simply not worry about saving the incomplete data server-side. You can utilize localStorage
to save the entered data as the user adds it to the form. That means you wouldn't even need an explicit button for the purpose. However, the one downside to this approach is that it's necessarily bound to the browser and machine the user is currently editing on (since it's client-side). If they moved to a different computer, they would not be able to resume their edits.