У меня есть одна форма в ASP.NET MVC (v1), которая имеет 2 кнопки ввода. Каждая кнопка отправки должна содержаться в этой единственной форме, и мне нужно знать, какую из них нажал пользователь.
Я знаю о том, как проверять значения FormCollection, которые будут возвращаться в зависимости от нажатой кнопки. Например, если у меня есть и пользователь нажимает кнопку Button2, я могу сказать, что Request.Form ["Button2"]! = Null, и это будет иметь значение true, в этом случае я знаю, что пользователь нажал эту кнопку. *
Однако, это не работает для меня. Значения всех моих кнопок равны нулю, поскольку ни одна из них не содержится в значениях Request.Form. Есть ли ошибка в ASP.NET MVC, которая поглощает эти значения?
Вот мой код формы:
<% using (Html.BeginForm()) {%>
<% Html.RenderPartial( "EditAreaControl", Model ); %>
<div class="form-layout-command-container">
<div class="form-layout-command-area-alpha"><button type="submit" name="submit1" value="Save">Save</button></div>
<div class="form-layout-command-area-alpha"><button type="submit" name="submit2" value="SaveAndCopy">Save and Create Copy</button></div>
<div class="form-layout-command-area-beta"><%= Html.ActionLink("Cancel", "list") %></div>
</div>
<% } %>
Вот код моего контроллера:
[AcceptVerbs( HttpVerbs.Post )]
public ActionResult Add(FormCollection values )
{
if (values["submit1"] != null)
// always false
if (values["submit2"] != null)
// always false as well
}