Пустая ссылка при отправке форм Umbraco в пользовательский источник данных
Я пытаюсь сохранить Umbraco Forms (Umbraco v7.5.3) в своем собственном источнике данных. Я следовал этому руководству: http://www.nibble.be/?p=84
И это похоже на работу. Я могу подключиться и создать форму на основе таблицы. Что приятно.
Моя настройка
Я добавляю новый источник данных форм со строкой подключения:
Provider=SQLNCLI11;Server=(localdb)\MSSQLLocalDB;Database=test;Integrated Security=SSPI;
Моя таблица выглядит так:
Свойство Id (PK) настроено как удостоверение
Я выбираю несколько полей, которые хочу использовать в форме:
Я выбираю, какие типы данных он должен использовать:
Я немного озадачен, почему
Id
поле есть. Я не выбрал его, и в руководстве, которому я следовал, тоже не было этого поля:/?Он генерирует эту форму для меня:
ошибка
Но когда я пытаюсь отправить данные формы, я получаю следующую ошибку. Что не приятно.
Ошибка сервера в приложении '/'
В экземпляре объекта не задана ссылка на объект.
Описание: во время выполнения текущего веб-запроса произошло необработанное исключение. Пожалуйста, просмотрите трассировку стека для получения дополнительной информации об ошибке и о том, где она возникла в коде.
Сведения об исключении: 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
2 состояния) +205
Umbraco.Forms.Web.Controllers.UmbracoFormsController.GoForward(Form form, FormViewModel model, Dictionary
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, IDictionary2 parameters) +157
2 параметра) +27
System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod(ControllerContext controllerContext, ActionDescriptor actionDescriptor, IDictionary
System.Web.Mvc.Async.AsyncControllerActionInvoker.b__39 (IAsyncResult asyncResult, ActionInvocation innerInvokeState) +22
System.Web.Mvc.Async.WrappedAsyncResult2.CallEndDelegate(IAsyncResult asyncResult) +29
1. Конец () +49
System.Web.Mvc.Async.WrappedAsyncResultBase
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.WrappedAsyncResult1.CallEndDelegate(IAsyncResult asyncResult) +10
1. Конец () +49
System.Web.Mvc.Async.WrappedAsyncResultBase
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
1. Конец () +49
System.Web.Mvc.Async.WrappedAsyncResultBase
System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeAction (IAsyncResult asyncResult) +27
System.Web.Mvc.Controller.b__1d (IAsyncResult asyncResult, ExecuteCoreState innerState) +13
System.Web.Mvc.Async.WrappedAsyncVoid1.CallEndDelegate(IAsyncResult asyncResult) +29
1. Конец () +49
System.Web.Mvc.Async.WrappedAsyncResultBase
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
1. Конец () +49
System.Web.Mvc.Async.WrappedAsyncResultBase
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
1. Конец () +49
System.Web.Mvc.Async.WrappedAsyncResultBase
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