在web表单保存为行动营销抛出异常(Save Action on webforms for mark

2019-10-21 02:05发布

我使用Sitecore的最新版本 - 7.2(REV 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的博客文章- 这尽管它是SC的早期版本不要紧和解决方案适用于最新的版本。

Answer 1:

我想我有一个解决方案。

我逆向工程,并且使用版本我反映到之后创建的控制器和模型粘合剂的调试Sitecore.Forms.MVC使用类ILSpy

显然, 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和呈现的数据源属性表单数据源。



文章来源: Save Action on webforms for marketers throws exception