Umbraco 表面控制器未使用 POST 提交至后端
Umbraco surface controller not submitting to backend with POST
我基本上有一个联系表,我需要 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
您的问题是您在表单内部呈现表单。
您的视图应如下所示:
using (Html.BeginUmbracoForm("HandleFormSubmit", "ContactForm", FormMethod.Post)) {
<input name="Name" type="text" />
<button type="submit">Send</button>
}
它应该可以工作。
我基本上有一个联系表,我需要 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
您的问题是您在表单内部呈现表单。
您的视图应如下所示:
using (Html.BeginUmbracoForm("HandleFormSubmit", "ContactForm", FormMethod.Post)) {
<input name="Name" type="text" />
<button type="submit">Send</button>
}
它应该可以工作。