NullReferenceException при отправке WFFM

Я пытаюсь заставить веб-формы для маркетологов работать на веб-сайте 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.

Я обнаружил, что Сохранить действие на веб-формах для маркетологов вызывает исключение как дубликат. Важный акцент: для источника данных требуется не путь, указанный в идентификаторе формы, а фактический идентификатор формы, который вы можете просмотреть через необработанные значения.


person Frank    schedule 12.12.2014    source источник
comment
Первоначально предложенное решение stackoverflow.com/questions/26094198/ у меня не работает. Видимо я неправильно истолковал решение. Источнику данных нужен фактический идентификатор, а не путь (т. е. используйте необработанные значения для просмотра идентификатора).   -  person Frank    schedule 15.12.2014


Ответы (1)


Это исключение означает, что какой-то объект имеет значение null, и вы присваиваете значение его члену.

если я прав, вы назначаете данные модели представления какой-либо модели домена, и причина, по которой вы получаете exepton, заключается в том, что ваша модель домена равна нулю, сначала вы должны создать экземпляр этой модели, а затем придать ему какое-то значение

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

P.S. Отладка — ваш лучший друг в таких ситуациях.

person Dachi    schedule 15.12.2014
comment
Проблема в том, что WFFM присваивает это значение на основе контента Sitecore. Таким образом, нет реального места для отладки (поскольку весь код является либо кодом Sitecore, либо кодом WFFM. Тем не менее, спасибо. - person Frank; 15.12.2014
comment
Reflector Pro может выполнять отладку сторонних DLL в режиме реального времени. Также погуглите COMPLUS_ZapDisable=1 - person Paul George; 15.01.2016