Поверхностный контроллер Umbraco не подчиняется бэкэнду с POST
У меня в основном есть контактная форма, которую мне нужно ПОСТАВИТЬ в мой бэкэнд Umbraco. Внешний вид выглядит примерно так:
using (Html.BeginUmbracoForm("HandleFormSubmit", "ContactForm", FormMethod.Post)) {
<form>
<input name="Name" type="text" />
<button type="submit">Send</button>
</form>
}
Затем у меня есть контроллер поверхности в /Controllers/ContactFormController.cs
это выглядит так:
public class ContactFormController : SurfaceController {
// GET: ContactForm
public ActionResult Index() {
return PartialView("ContactForm", new ContactForm());
}
[HttpPost]
public ActionResult HandleFormSubmit(ContactForm model) {
return RedirectToCurrentUmbracoPage();
}
}
Я пытаюсь ударить HandleFormSubmit
POST метод. Метод GET работает (точка останова доказывает это). Независимо от того, что я делаю, я не могу заставить его ударить этот метод. Я посмотрел на тонны руководств, и все они, кажется, точно так же, как это.
Данные POST следующие:
url: /contact-us/
data: name="Test"
Content-Type: multipart/form-data
Что я здесь не так делаю? Использование Umbraco 7.6.6
1 ответ
Решение
Ваша проблема в том, что вы отображаете форму внутри формы.
Ваше мнение должно выглядеть так:
using (Html.BeginUmbracoForm("HandleFormSubmit", "ContactForm", FormMethod.Post)) {
<input name="Name" type="text" />
<button type="submit">Send</button>
}
И это должно работать.