У меня есть форма с двумя кнопками отправки в моем asp.net mvc (C#) приложение. Когда я нажимаю любую кнопку отправки в Google Chrome
, по умолчанию значение кнопки отправки является значением первой кнопки отправки.
Вот HTML:
<input type="submit" value="Send" name="SendEmail" />
<input type="submit" value="Save As Draft" name="SendEmail" />
<input type="button" value="Cancel" />
Когда я нажимаю Save As Draft
кнопка, в действии контроллера, это добирается, "Отправляют" как значение для SendEmail
.
Вот действие:
public ActionResult SendEmail(string SendEmail, FormCollection form)
{
if(SendEmail == "Send")
{
//Send Email
}
else
{
//Save as draft
}
return RedirectToAction("SendEmailSuccess");
}
Когда я получаю значение от FormCollection, оно показывает, "Отправляют". т.е. form["SendEmail"]
дает Send
Каковы могут быть проблема или работа вокруг, я должен сделать для получения фактического значения нажатой кнопки отправки?
обходной путь: используйте javascript для отправки формы вместо кнопок отправки
Показать эту страницу.
ASP.NET MVC - Несколько кнопок в одной форме - Блог Дэвида Финдли
Создание класса-наследника ActionMethodSelectorAttribute.
Попробуйте вместо этого:
<input type="submit" value="Send" name="send" />
<input type="submit" value="Save As Draft" name="save" />
и:
public ActionResult SendEmail(string send, FormCollection form)
{
if (!string.IsNullOrEmpty(send))
{
// the Send button has been clicked
}
else
{
// the Save As Draft button has been clicked
}
}