Скрытые HTML-элементы будут отправлены вместе с вашей формой, поэтому вы можете добавить скрытый элемент и изменить его по нажатию кнопки перед отправкой. Верните true, чтобы продолжить отправку формы.
@Html.Hidden("sendemail", true)
<input type="submit" value="Send"
onclick="$('#sendemail').val(true); return true" />
<input type="submit" value="Save As Draft"
onclick="$('#sendemail').val(false); return true;" />
Теперь вы можете просто извлечь значение из вашей коллекции форм.
public ActionResult SendEmail(FormCollection form)
{
if(Boolean.Parse(form["sendemail"]))
{
//Send Email
}
else
{
//Save as draft
}
return RedirectToAction("SendEmailSuccess");
}
Вместо непосредственного использования FormCollection рекомендуется создать модель представления, содержащую указанное свойство.
Просмотр модели
public class FooViewModel
{
public bool SendEmail { get; set; }
// other stuff
}
HTML
// MVC sets a hidden input element's id attribute to the property name,
// so it's easily selectable with javascript
@Html.HiddenFor(m => m.SendEmail)
// a boolean HTML input can be modified by setting its value to
// 'true' or 'false'
<input type="submit" value="Send"
onclick="$('#SendEmail').val(true); return true" />
<input type="submit" value="Save As Draft"
onclick="$('#SendEmail').val(false); return true;" />
Действие контроллера
public ActionResult SendEmail(FooViewModel model)
{
if(model.SendEmail)
{
//Send Email
}
else
{
//Save as draft
}
return RedirectToAction("SendEmailSuccess");
}