1

我正在使用最新版本的Sitecore - 7.2(修訂版140228)和最新版本的WFFM - 2.4修訂版。因此,無論何時我嘗試提交表單時,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,但無關緊要,該解決方案適用於最新版本。

+0

您使用自定義表單模型嗎? – nsgocev 2014-09-29 08:20:42

+0

我試着用我自己定製的表單和/ sitecore/system/Modules/Web Forms中的預定義表單來營銷/樣本表格/ ...結果是一樣的 – IIvanov 2014-09-29 08:27:05

+0

您確定MVC按照預期工作?還有你檢查這篇文章,並確保你試圖做的一切都與MVC兼容? http://sdn.sitecore.net/upload/sdn5/products/web_forms2/24/web%20forms%20for%20marketers%20v2_4%20reference-a4.pdf – nsgocev 2014-09-29 08:48:03

回答

10

想想我有一個解決方案。

我使用我在使用ILSpySitecore.Forms.MVC類進行反思後創建的控制器和模型綁定器的版本進行了反向設計和調試。

顯然,null引用它擊中這個時候存在的:

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

itemnull

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

數據源屬性是基於呈現空:item在線路之前設置。如果您查看演示文稿的詳細信息,則會看到這是因爲有另一個字段用於指定表單ID。顯然這看起來像一個Sitecore錯誤。但是一個簡單的解決方法是在表單ID和數據源屬性中設置表單數據源。

+0

驚人的趕上! – nsgocev 2015-05-22 12:46:02

相關問題