У меня простая форма, у которой есть поля ввода имени и возраста, внизу у меня есть две кнопки:
<input type="submit" id="submitButton" name="submitAction" value="Save" />
<input type="submit" id="submitButton" name="submitAction" value="Submit" />
Кнопка сохранения просто создает временные данные, чтобы они могли вернуться и отредактировать ее, кнопка отправки будет продолжена и создаст ее, теперь, когда нажата любая из кнопок, она переходит к этой функции контроллера:
public ActionResult CreatePerson(Person model, string submitAction)
{
//lots of code i removed
}
но submitAction - это нуль, любые идеи о том, почему это происходит?
Мой полный код.cshtml
@model Person
@using (Html.BeginFormAntiForgeryPost(null, FormMethod.Post))
{
@Html.TextBox(x => x.Name)
@Html.TextBox(x => x.Age)
<input type="submit" id="submitButton" name="submitAction" value="Save" />
<input type="submit" id="submitButton" name="submitAction" value="Submit" />
}
Я выяснил проблему
В основном мне пришлось изменить это
<input type="submit" id="submitButton" name="submitAction" value="Save" />
<input type="submit" id="submitButton" name="submitAction" value="Submit" />
к этому
<input type="submit" id="saveButton" name="submitAction" value="Save" />
<input type="submit" id="saveButton" name="submitAction" value="Submit" />
Сообщение submitButton, похоже, не опубликовано правильно :)
Вам нужно указать action at the form level
Не на кнопку отправки
<form action="controller/action" method="post">
<input type="submit" id="submitButton" value="Save" />
</form>
Лучше использовать MVC, встроенный в HTML-классы, такие как
@using (Html.BeginForm("ActionName", "ControllerName", FormMethod.Post))
{
<input type="submit" id="submitButton" value="Save" />
}