Пустая ссылка при отправке форм Umbraco в пользовательский источник данных

Я пытаюсь сохранить Umbraco Forms (Umbraco v7.5.3) в своем собственном источнике данных. Я следовал этому руководству: http://www.nibble.be/?p=84

И это похоже на работу. Я могу подключиться и создать форму на основе таблицы. Что приятно.

Моя настройка

  1. Я добавляю новый источник данных форм со строкой подключения:

    Provider=SQLNCLI11;Server=(localdb)\MSSQLLocalDB;Database=test;Integrated Security=SSPI;
    
  2. Моя таблица выглядит так:

    Таблица

    Свойство Id (PK) настроено как удостоверение

  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, словарь 2 state, ControllerContext context) +2245
Umbraco.Forms.Web.Controllers.UmbracoFormsController.GoForward(Form form, FormViewModel model, Dictionary
2 состояния) +205
Umbraco.Forms.Web.Controllers.UmbracoFormsController.HandleForm (модель FormViewModel, логическая captchaIsValid) +785 lambda_method(закрытие, ControllerBase, Object[]) +143
System.Web.Mvc.ActionMethodDispatcher.Execute (контроллер ControllerBase, параметры Object[]) +14
System.Web.Mvc.ReflectedActionDescriptor.Execute (ControllerContext controllerContext, IDictionary 2 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.WrappedAsyncResult 2.CallEndDelegate(IAsyncResult asyncResult) +29
System.Web.Mvc.Async.WrappedAsyncResultBase
1. Конец () +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.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.WrappedAsyncResult 1.CallEndDelegate(IAsyncResult asyncResult) +10
System.Web.Mvc.Async.WrappedAsyncResultBase
1. Конец () +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.WrappedAsyncResult 1.CallEndDelegate(IAsyncResult asyncResult) +10
System.Web.Mvc.Async.WrappedAsyncResultBase
1. Конец () +49
System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeAction (IAsyncResult asyncResult) +27
System.Web.Mvc.Controller.b__1d (IAsyncResult asyncResult, ExecuteCoreState innerState) +13
System.Web.Mvc.Async.WrappedAsyncVoid 1.CallEndDelegate(IAsyncResult asyncResult) +29
System.Web.Mvc.Async.WrappedAsyncResultBase
1. Конец () +49
System.Web.Mvc.Controller.EndExecuteCore (IAsyncResult asyncResult) +36 System.Web.Mvc.Controller.b__15 (IAsyncResult asyncResult, контроллер контроллера) +12
System.Web.Mvc.Async.WrappedAsyncVoid 1.CallEndDelegate(IAsyncResult asyncResult) +22
System.Web.Mvc.Async.WrappedAsyncResultBase
1. Конец () +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.WrappedAsyncVoid 1.CallEndDelegate(IAsyncResult asyncResult) +29
System.Web.Mvc.Async.WrappedAsyncResultBase
1. Конец () +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, логический и завершенный синхронно) +155

Вопросы

  • Почему Id поле добавлено в мою форму, когда я не выбрал его?
  • Как форма связана с моей таблицей? Когда я создаю новую форму, я не могу установить для нее источник данных и не могу найти никакой конфигурации в сгенерированной форме, которая указывает на мой источник данных.
    • Как поля формы связаны со столбцом таблицы? Это через "отображаемое имя"?
  • Почему я получаю выше Null Reference при попытке отправить мою форму?

1 ответ

Я смог решить эту проблему, обновив версию Umbraco Forms. Я думаю, что это была известная проблема для Umbraco v7.4.3 и Umbraco Forms v4.3.2, которые я использовал.

Смотрите этот отчет о проблеме: http://issues.umbraco.org/issue/CON-1188

Другие вопросы по тегам