【问题标题】:Save Action on webforms for marketers throws exception为营销人员保存网络表单上的操作引发异常
【发布时间】:2016-11-25 14:23:00
【问题描述】:

我正在使用最新版本的 Sitecore - 7.2(修订版 140228)和最新版本的 WFFM - 2.4 修订版。 140923。所以问题是每当我尝试提交表单时,无论我有什么样的保存操作,Sitecore 都会抛出异常:

对象引用未设置为对象的实例。

描述:发生未处理的异常。

异常详细信息:System.NullReferenceException:对象引用未设置为对象的实例。

堆栈跟踪:

[NullReferenceException: Object reference not set to an instance of an object.]
   Sitecore.Forms.Mvc.Controllers.ModelBinders.FormModelBinder.BindModel(ControllerContext controllerContext, ModelBindingContext bindingContext) +571
   System.Web.Mvc.ControllerActionInvoker.GetParameterValue(ControllerContext controllerContext, ParameterDescriptor parameterDescriptor) +457
   System.Web.Mvc.ControllerActionInvoker.GetParameterValues(ControllerContext controllerContext, ActionDescriptor actionDescriptor) +152
   System.Web.Mvc.ControllerActionInvoker.InvokeAction(ControllerContext controllerContext, String actionName) +641

一些附加信息。最新版本的 WFFM 支持 MVC,所以在这个场景中我使用 cshtml 布局。这是一篇描述如何使用 MVC 的博文 - THIS 尽管它适用于 SC 的早期版本,但这并不重要,该解决方案适用于最新版本。

【问题讨论】:

  • 您使用的是自定义表单模型吗?
  • 我尝试使用我自己的定制表单以及 /sitecore/system/Modules/Web Forms for Marketing/Sample forms/中的预定义表单...结果是一样的
  • 您确定 MVC 正在按预期工作吗?您是否也检查过这篇文章并确保您尝试做的所有事情都与 MVC 兼容? sdn.sitecore.net/upload/sdn5/products/web_forms2/24/…
  • 是的。例如,在我的简单自定义表单中,我仅在“单行文本”类型的字段上使用“MVC 类型”-“Sitecore.Forms.Mvc.Models.Fields.SingleLineTextField,Sitecore.Forms.Mvc”。所以我认为我使用它正确吗?

标签: submit sitecore nullreferenceexception web-forms-for-marketers


【解决方案1】:

我想我有办法解决这个问题。

我使用我在使用ILSpy 反映Sitecore.Forms.MVC 类后创建的控制器和模型绑定器版本进行了逆向工程和调试。

显然null 引用在遇到此问题时正在发生:

if (controllerContext.HttpContext.Request.RequestType == "POST" && formId != item.ID)

itemnullitem 设置在前一行:

Sitecore.Data.Items.Item item = RenderingContext.CurrentOrNull.PageContext.Database.GetItem(RenderingContext.CurrentOrNull.Rendering.DataSource);

渲染时数据源属性为空。如果您检查您的演示文稿详细信息,您会看到这是因为有另一个字段用于指定您的表单 ID。显然这看起来像一个Sitecore 错误。但是一个简单的解决方法是在表单 ID 和渲染的数据源属性中设置表单数据源。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-01-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多