【问题标题】:Null Reference when submitting Umbraco Forms to custom data source将 Umbraco 表单提交到自定义数据源时的空引用
【发布时间】:2016-10-11 12:54:55
【问题描述】:

我正在尝试将 Umbraco 表单 (Umbraco v7.5.3) 保存到我自己的数据源中。 我遵循了这个指南:http://www.nibble.be/?p=84

而且它似乎可以正常工作。我可以根据表格连接并生成表格。哪个不错。

我的设置

  1. 我用连接字符串添加了一个新的表单数据源:

    Provider=SQLNCLI11;Server=(localdb)\MSSQLLocalDB;Database=test;Integrated Security=SSPI;
    
  2. 我的桌子是这样的:

    Id (PK) 属性配置为 Identity

  3. 我在表单中选择了一些我想使用的字段:

  4. 我选择它应该使用的数据类型:

    我有点困惑为什么Id 字段在那里。我没有选择它,我遵循的指南也没有这个字段:/?

  5. 它为我生成了这个表单:

错误

但是当我尝试提交表单数据时,我收到以下错误。这不是很好。

“/”应用程序中的服务器错误。

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

描述:执行过程中发生了未处理的异常 当前的网络请求。请查看堆栈跟踪以获取更多信息 有关错误的信息以及它在代码中的来源。

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

来源错误:

在执行过程中产生了一个未处理的异常 当前的网络请求。有关原产地和位置的信息 可以使用下面的异常堆栈跟踪来识别异常。

堆栈跟踪:

[NullReferenceException: 对象引用未设置为 对象。]
Umbraco.Forms.Core.Providers.DatasourceTypes.MsSql.InsertRecord(记录 记录)+1750
Umbraco.Forms.Web.Services.RecordService.storeRecord(记录记录, 表格表格)+1574
Umbraco.Forms.Web.Services.RecordService.Approve(记录记录,表格 表格)+343 Umbraco.Forms.Web.Services.RecordService.Submit(记录 记录、表格)+565
Umbraco.Forms.Web.Controllers.UmbracoFormsController.SubmitForm(表单 表单,FormViewModel 模型,Dictionary2 state, ControllerContext context) +2245
Umbraco.Forms.Web.Controllers.UmbracoFormsController.GoForward(Form form, FormViewModel model, Dictionary
2 状态)+205
Umbraco.Forms.Web.Controllers.UmbracoFormsController.HandleForm(FormViewModel 模型,布尔验证码)+785 lambda_method(闭包, ControllerBase , 对象[] ) +143
System.Web.Mvc.ActionMethodDispatcher.Execute(ControllerBase 控制器,Object[] 参数)+14
System.Web.Mvc.ReflectedActionDescriptor.Execute(ControllerContext 控制器上下文,IDictionary2 parameters) +157
System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod(ControllerContext controllerContext, ActionDescriptor actionDescriptor, IDictionary
2 参数)+27
System.Web.Mvc.Async.AsyncControllerActionInvoker.b__39(IAsyncResult asyncResult, ActionInvocation innerInvokeState) +22
System.Web.Mvc.Async.WrappedAsyncResult2.CallEndDelegate(IAsyncResult asyncResult) +29
System.Web.Mvc.Async.WrappedAsyncResultBase
1.End() +49
System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeActionMethod(IAsyncResult asyncResult) +32
System.Web.Mvc.Async.AsyncInvocationWithFilters.b__3d() +50 System.Web.Mvc.Async.c__DisplayClass46.b__3f() +225 System.Web.Mvc.Async.c__DisplayClass46.b__3f() +225 System.Web.Mvc.Async.c__DisplayClass46.b__3f() +225 System.Web.Mvc.Async.c__DisplayClass46.b__3f() +225 System.Web.Mvc.Async.c__DisplayClass46.b__3f() +225 System.Web.Mvc.Async.c__DisplayClass33.b__32(IAsyncResult asyncResult) +10
System.Web.Mvc.Async.WrappedAsyncResult1.CallEndDelegate(IAsyncResult asyncResult) +10
System.Web.Mvc.Async.WrappedAsyncResultBase
1.End() +49
System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeActionMethodWithFilters(IAsyncResult asyncResult) +34
System.Web.Mvc.Async.c__DisplayClass2b.b__1c() +26 System.Web.Mvc.Async.c__DisplayClass21.b__1e(IAsyncResult asyncResult) +100
System.Web.Mvc.Async.WrappedAsyncResult1.CallEndDelegate(IAsyncResult asyncResult) +10
System.Web.Mvc.Async.WrappedAsyncResultBase
1.End() +49
System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeAction(IAsyncResult asyncResult) +27
System.Web.Mvc.Controller.b__1d(IAsyncResult asyncResult,ExecuteCoreState 内部状态)+13
System.Web.Mvc.Async.WrappedAsyncVoid1.CallEndDelegate(IAsyncResult asyncResult) +29
System.Web.Mvc.Async.WrappedAsyncResultBase
1.End() +49
System.Web.Mvc.Controller.EndExecuteCore(IAsyncResult asyncResult) +36 System.Web.Mvc.Controller.b__15(IAsyncResult asyncResult,控制器控制器)+12
System.Web.Mvc.Async.WrappedAsyncVoid1.CallEndDelegate(IAsyncResult asyncResult) +22
System.Web.Mvc.Async.WrappedAsyncResultBase
1.End() +49
System.Web.Mvc.Controller.EndExecute(IAsyncResult asyncResult) +26
System.Web.Mvc.Controller.System.Web.Mvc.Async.IAsyncController.EndExecute(IAsyncResult asyncResult) +10
System.Web.Mvc.MvcHandler.b__5(IAsyncResult asyncResult, ProcessRequestState innerState) +21
System.Web.Mvc.Async.WrappedAsyncVoid1.CallEndDelegate(IAsyncResult asyncResult) +29
System.Web.Mvc.Async.WrappedAsyncResultBase
1.End() +49
System.Web.Mvc.MvcHandler.EndProcessRequest(IAsyncResult asyncResult) +28 System.Web.Mvc.MvcHandler.System.Web.IHttpAsyncHandler.EndProcessRequest(IAsyncResult 结果)+9
System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +9765121 System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +155

问题

  • 为什么Id 字段在我没有选择的情况下添加到我的表单中?
  • 表单如何链接到我的表格?当我创建一个新表单时,我无法为其设置数据源,并且在生成的表单上找不到任何指向我的数据源的配置。
    • 如何将表单域链接到表格列?是通过“显示名称”吗?
  • 为什么我在尝试提交表单时收到上述Null Reference

【问题讨论】:

  • 你解决了吗?
  • 我在他们的论坛上写过,似乎我遇到了他们的表单模块的错误。所以我断定它还没有准备好生产并放弃了 Umbraco

标签: umbraco umbraco7 umbraco-forms


【解决方案1】:

我能够通过升级 Umbraco Forms 的版本来解决这个问题。我猜这是我使用的 Umbraco v7.4.3 和 Umbraco Forms v4.3.2 的一个已知问题。

查看此问题报告:http://issues.umbraco.org/issue/CON-1188

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-09-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-07
    相关资源
    最近更新 更多