为了在提交表单后添加自定义过程,并基于此过程更改用户旅程,您必须执行以下操作:
创建一个新的控制器并继承UmbracoFormsController
并覆盖该OnFormHandled
方法
public class CustomUmbracoFormsController : UmbracoFormsController
{
protected override void OnFormHandled(Form form, FormViewModel model)
{
// Find the field in the form, then search for a matching value
var field = form.AllFields.FirstOrDefault(x => x.Alias == "deliveryOptions");
var fieldValue = model.FormState[field.Id.ToString()].GetValue(0).ToString();
// Add the value to the TempData
TempData["deliveryOptions"] = fieldValue;
}
}
上面是一个基本的实现,不考虑NULL
使用上面的新控制器更新对UmbracoFormsController
in的引用。/Views/Partials/Forms/Form.cshtml
...
@using (Html.BeginUmbracoForm<CustomUmbracoFormsController>("HandleForm"))
...
在上面的示例中,我们分析表单数据并将一些信息存储在 中TempData
,我们可以将表单设置为重定向到通用的感谢页面,在该页面中我们可以分析 中的值TempData
并更改用户看到的视图。
此外,如果您要更改 Form 值以及要更新的内容,您将需要 Record Guid,您可以将其TempData["Forms_Current_Record_id"]
与新RecordStore
对象一起检索。