Поверхностный контроллер 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>
}

И это должно работать.

Другие вопросы по тегам