【问题标题】:NullReferenceException on WFFM SubmitWFFM 提交时出现 NullReferenceException
【发布时间】:2014-12-12 12:40:54
【问题描述】:

我正在尝试让营销人员的 Webforms 在 Sitecore Mvc 网站中工作。 表单正常呈现,但在提交表单时会发生 NRE。

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

新创建的表单和未修改的示例表单都会出现此错误。我已经使用默认的“告诉朋友”和“发送电子邮件”操作进行了测试。我在 Mvc 环境(常规和 Mvc 多站点)之外使用这些表单和操作没有遇到任何问题。我正在使用 Sitecore 7.5 和 WFFM 2.5。

我发现 Save Action on webforms for marketers throws exception 是重复的。重点强调的是,DataSource 不需要表单 ID 中显示的路径,而是您可以通过原始值查看的实际表单 ID。

【问题讨论】:

  • 最初stackoverflow.com/questions/26094198/… 建议的解决方案似乎对我不起作用。显然我误解了解决方案。 DataSource 需要实际 ID 而不是路径(即使用原始值查看 ID)。

标签: web-forms-for-marketers


【解决方案1】:

这个例外意味着某些对象被设置为 null 并且你将值分配给它的成员。

如果我是正确的,你将视图模型数据分配给某个域模型,而你得到 exepton 的原因是你的域模型为空,首先你必须创建该模型的实例,然后给它一些值

DomainModel yourModel = new DomainModel();
//and than you must give to yourModel objects properties some values

P.S 在这种情况下调试是你最好的朋友

【讨论】:

  • 问题在于 WFFM 正在根据 Sitecore 内容分配该值。因此没有真正的调试位置(因为所有代码都是 Sitecore 代码或 WFFM 代码。不过,谢谢。
  • Reflector Pro 可以实时调试第 3 方 dll。也谷歌“COMPLUS_ZapDisable=1”
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-06-25
  • 1970-01-01
  • 2014-02-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多