Retour d’envoi

JVD Archery met tout en œuvre pour vous proposer les meilleurs produits. Toutefois, il peut arriver qu’un envoi ne corresponde pas à vos attentes. Dans ce cas, notre service Service & Support est à votre disposition, conformément à notre politique de retour.

Veuillez remplir notre formulaire de retour en ligne pour lancer la procédure de retour. Si vous avez des questions, n’hésitez pas à envoyer un e-mail à l’adresse contact@jvd-group.com ou à nous appeler au +31 735 186 020.

Error executing template "Designs/JVD_generated/Forms/Form/JVD_RmaForm.cshtml"
System.NullReferenceException: Object reference not set to an instance of an object.
   at CompiledRazorTemplates.Dynamic.RazorEngine_ce970062e40941378b19813fdf4846fa.Execute() in D:\dynamicweb.net\Solutions\JVDgroup\Productie\files\Templates\Designs\JVD_generated\Forms\Form\JVD_RmaForm.cshtml:line 471
   at RazorEngine.Templating.TemplateBase.RazorEngine.Templating.ITemplate.Run(ExecuteContext context, TextWriter reader)
   at RazorEngine.Templating.RazorEngineService.RunCompile(ITemplateKey key, TextWriter writer, Type modelType, Object model, DynamicViewBag viewBag)
   at RazorEngine.Templating.RazorEngineServiceExtensions.<>c__DisplayClass16_0.<RunCompile>b__0(TextWriter writer)
   at RazorEngine.Templating.RazorEngineServiceExtensions.WithWriter(Action`1 withWriter)
   at Dynamicweb.Rendering.RazorTemplateRenderingProvider.Render(Template template)
   at Dynamicweb.Rendering.TemplateRenderingService.Render(Template template)
   at Dynamicweb.Rendering.Template.RenderRazorTemplate()

1 @inherits Dynamicweb.Rendering.RazorTemplateBase<Dynamicweb.Rendering.RazorTemplateModel<Dynamicweb.Rendering.Template>> 2 @using Dynamicweb; 3 4 @{ 5 string formId = GetString("Form.HtmlId"); 6 string formName = GetString("Form.Name"); 7 string formCssClass = GetString("Form.CssClass"); 8 string formSystemFields = GetString("Form.SystemFields"); 9 string formOnSubmit = GetString("Form.OnSubmit"); 10 string formAction = GetString("Form.Action"); 11 var submitTabindex = GetLoop("Fields").Count + 1; 12 var buttonIconClass = Pageview.Area.Item["Global_button_icon"] != null ? Pageview.Area.Item["Global_button_icon"].ToString().Replace("+", " ") : "fal fa-arrow-right"; 13 14 string productname = System.Web.HttpContext.Current.Items["CurrentProductName"] != null ? System.Web.HttpContext.Current.Items["CurrentProductName"].ToString() : ""; 15 } 16 17 <script> 18 // JSON Error variables, for the time being 19 var errorMessagesJSON = 20 { 21 'StrErrorMsgTxtName': { 22 '_default' : '@Translate("form.error.text", "It looks like this field is empty or too short")', 23 '_validate' : '@Translate("form.error.text.notvalid", "It looks like this field is not valid")' 24 }, 25 'StrErrorMsgTxtEmail': { 26 '_default' : '@Translate("form.error.emaildefault", "It seems that your e-mail address has not been completed")', 27 '_validate' : '@Translate("form.error.emailnotvalid", "It seems that this is not a valid e-mail address")' 28 }, 29 'StrErrorMsgPassword': { 30 '_default' : '@Translate("form.error.text", "It looks like this field is empty or too short")', 31 '_match': '@Translate("checkout.error.passwordnomatch", "Passwords do not match")', 32 '_minchar': '@Translate("checkout.error.passwordnominchar", "Password needs to be at least 6 characters")' 33 }, 34 'StrErrorMsgNumber': { '_default': '@Translate("form.error.number", "It seems that your mobile number is not indicated or too short")' }, 35 'StrErrorMsgCheckbox': { '_default': '@Translate("form.error.checkbox", "It looks like this field is empty, please select an option")' }, 36 'StrErrorMsgOptionList': { '_default': '@Translate("form.error.optionlist", "Please select an option")' } 37 }; 38 </script> 39 40 @helper RenderInput(LoopItem field, string fieldType, string fieldTabindex, string fieldHtmlId, string fieldName, bool fieldRequired, string fieldControl, string fieldPlaceholder, string fieldCssClass) 41 { 42 string fieldDescription = field.GetString("Field.Description"); 43 44 switch (fieldType) 45 { 46 case "TextInput": 47 <section class="form__item @fieldCssClass"> 48 <div class="input__group form-item__input form-group"> 49 <label class="form__input-label input__label" for="@fieldHtmlId"> 50 @fieldName @(fieldRequired ? "*" : "") 51 @if(!string.IsNullOrWhiteSpace(fieldDescription)) 52 { 53 <span class="form__input-tooltip" data-tippy-content="@field.GetString("Field.Description")"> 54 <i class="fal fa-info-circle"></i> 55 </span> 56 } 57 </label> 58 <input name="@fieldHtmlId" 59 type="text" 60 class="form__input input input--text" 61 id="@fieldHtmlId" 62 tabindex="@fieldTabindex" 63 placeholder="@fieldPlaceholder" 64 @(fieldRequired ? "required minchar=\"1\" " : "") 65 erroralias="StrErrorMsgTxtName" /> 66 <i class="fal fa-check checkmark"></i> 67 <i class="fal fa-times cross"></i> 68 </div> 69 <div class="errormessage"></div> 70 </section> 71 break; 72 case "Search": 73 <section class="form__item @fieldCssClass"> 74 <div class="input__group form-item__input form-group"> 75 <label class="form__input-label input__label" for="@fieldHtmlId"> 76 @fieldName @(fieldRequired ? "*" : "") 77 @if(!string.IsNullOrWhiteSpace(fieldDescription)) 78 { 79 <span class="form__input-tooltip" data-tippy-content="@field.GetString("Field.Description")"> 80 <i class="fal fa-info-circle"></i> 81 </span> 82 } 83 </label> 84 <input name="@fieldHtmlId" 85 type="search" 86 class="form__input input input--text" 87 id="@fieldHtmlId" 88 tabindex="@fieldTabindex" 89 placeholder="@fieldPlaceholder" 90 @(fieldRequired ? "required minchar=\"1\" " : "") 91 erroralias="StrErrorMsgTxtName" /> 92 <i class="fal fa-check checkmark"></i> 93 <i class="fal fa-times cross"></i> 94 </div> 95 <div class="errormessage"></div> 96 </section> 97 break; 98 case "Url": 99 <section class="form__item @fieldCssClass"> 100 <div class="input__group form-item__input form-group"> 101 <label class="form__input-label input__label" for="@fieldHtmlId"> 102 @fieldName @(fieldRequired ? "*" : "") 103 @if(!string.IsNullOrWhiteSpace(fieldDescription)) 104 { 105 <span class="form__input-tooltip" data-tippy-content="@field.GetString("Field.Description")"> 106 <i class="fal fa-info-circle"></i> 107 </span> 108 } 109 </label> 110 <input name="@fieldHtmlId" 111 type="url" 112 class="form__input input input--text" 113 id="@fieldHtmlId" 114 tabindex="@fieldTabindex" 115 placeholder="@fieldPlaceholder" 116 @(fieldRequired ? "required minchar=\"1\" " : "") 117 erroralias="StrErrorMsgTxtName" /> 118 <i class="fal fa-check checkmark"></i> 119 <i class="fal fa-times cross"></i> 120 </div> 121 <div class="errormessage"></div> 122 </section> 123 break; 124 case "Time": 125 case "Datetime": 126 <section class="form__item @fieldCssClass"> 127 <div class="input__group form-item__input form-group"> 128 <label class="form__input-label input__label" for="@fieldHtmlId"> 129 @fieldName @(fieldRequired ? "*" : "") 130 @if(!string.IsNullOrWhiteSpace(fieldDescription)) 131 { 132 <span class="form__input-tooltip" data-tippy-content="@field.GetString("Field.Description")"> 133 <i class="fal fa-info-circle"></i> 134 </span> 135 } 136 </label> 137 <input name="@fieldHtmlId" 138 type="time" 139 class="form__input input input--text" 140 id="@fieldHtmlId" 141 tabindex="@fieldTabindex" 142 placeholder="@fieldPlaceholder" 143 @(fieldRequired ? "required minchar=\"1\" " : "") 144 erroralias="StrErrorMsgTxtName" /> 145 <i class="fal fa-check checkmark"></i> 146 <i class="fal fa-times cross"></i> 147 </div> 148 <div class="errormessage"></div> 149 </section> 150 break; 151 case "Date": 152 case "Month": 153 case "Week": 154 <section class="form__item @fieldCssClass"> 155 <div class="input__group form-item__input form-group"> 156 <label class="form__input-label input__label" for="@fieldHtmlId"> 157 @fieldName @(fieldRequired ? "*" : "") 158 @if(!string.IsNullOrWhiteSpace(fieldDescription)) 159 { 160 <span class="form__input-tooltip" data-tippy-content="@field.GetString("Field.Description")"> 161 <i class="fal fa-info-circle"></i> 162 </span> 163 } 164 </label> 165 <input name="@fieldHtmlId" 166 type="date" 167 class="form__input input input--text" 168 id="@fieldHtmlId" 169 tabindex="@fieldTabindex" 170 placeholder="@fieldPlaceholder" 171 @(fieldRequired ? "required minchar=\"1\" " : "") 172 erroralias="StrErrorMsgTxtName" /> 173 <i class="fal fa-check checkmark"></i> 174 <i class="fal fa-times cross"></i> 175 </div> 176 <div class="errormessage"></div> 177 </section> 178 break; 179 case "Email": 180 <section class="form__item @fieldCssClass"> 181 <div class="input__group form-item__input form-group"> 182 <label class="form__input-label input__label" for="@fieldHtmlId"> 183 @fieldName @(fieldRequired ? "*" : "") 184 @if(!string.IsNullOrWhiteSpace(fieldDescription)) 185 { 186 <span class="form__input-tooltip" data-tippy-content="@field.GetString("Field.Description")"> 187 <i class="fal fa-info-circle"></i> 188 </span> 189 } 190 </label> 191 <input name="@fieldHtmlId" 192 type="email" 193 class="form__input input input--text" 194 id="@fieldHtmlId" 195 tabindex="@fieldTabindex" 196 @(fieldRequired ? "required minchar=\"1\" " : "") 197 erroralias="StrErrorMsgTxtEmail" 198 valtype="email" 199 transform="lowercase" 200 nospaces="nospaces" 201 placeholder="@fieldPlaceholder" /> 202 <i class="fal fa-check checkmark"></i> 203 <i class="fal fa-times cross"></i> 204 </div> 205 <div class="errormessage"></div> 206 </section> 207 break; 208 case "Password": 209 <section class="form__item @fieldCssClass"> 210 <div class="input__group form-item__input form-group"> 211 <label class="form__input-label input__label" for="@fieldHtmlId"> 212 @fieldName @(fieldRequired ? "*" : "") 213 @if(!string.IsNullOrWhiteSpace(fieldDescription)) 214 { 215 <span class="form__input-tooltip" data-tippy-content="@field.GetString("Field.Description")"> 216 <i class="fal fa-info-circle"></i> 217 </span> 218 } 219 </label> 220 <input name="@fieldHtmlId" 221 type="password" 222 class="form__input input input--text" 223 id="@fieldHtmlId" 224 tabindex="@fieldTabindex" 225 @(fieldRequired ? "required minchar=\"1\" " : "") 226 transform="lowercase" 227 nospaces="nospaces" 228 erroralias="StrErrorMsgPassword" /> 229 <i class="fal fa-check checkmark"></i> 230 <i class="fal fa-times cross"></i> 231 </div> 232 <div class="errormessage"></div> 233 </section> 234 break; 235 case "Tel": 236 <section class="form__item @fieldCssClass"> 237 <div class="input__group form-item__input form-group"> 238 <label class="form__input-label input__label" for="@fieldHtmlId"> 239 @fieldName @(fieldRequired ? "*" : "") 240 @if(!string.IsNullOrWhiteSpace(fieldDescription)) 241 { 242 <span class="form__input-tooltip" data-tippy-content="@field.GetString("Field.Description")"> 243 <i class="fal fa-info-circle"></i> 244 </span> 245 } 246 </label> 247 <input name="@fieldHtmlId" 248 type="tel" 249 class="form__input input input--text" 250 id="@fieldHtmlId" 251 tabindex="@fieldTabindex" 252 @(fieldRequired ? "required minchar=\"1\" " : "") 253 erroralias="StrErrorMsgNumber" 254 numeric="numeric" 255 placeholder="@fieldPlaceholder" /> 256 <i class="fal fa-check checkmark"></i> 257 <i class="fal fa-times cross"></i> 258 259 </div> 260 <div class="errormessage"></div> 261 </section> 262 break; 263 case "Number": 264 <section class="form__item @fieldCssClass"> 265 <div class="input__group form-item__input form-group"> 266 <label class="form__input-label input__label" for="@fieldHtmlId"> 267 @fieldName @(fieldRequired ? "*" : "") 268 @if(!string.IsNullOrWhiteSpace(fieldDescription)) 269 { 270 <span class="form__input-tooltip" data-tippy-content="@field.GetString("Field.Description")"> 271 <i class="fal fa-info-circle"></i> 272 </span> 273 } 274 </label> 275 <input name="@fieldHtmlId" 276 type="number" 277 class="form__input input input--text" 278 id="@fieldHtmlId" 279 tabindex="@fieldTabindex" 280 @(fieldRequired ? "required minchar=\"1\" " : "") 281 erroralias="StrErrorMsgNumber" 282 numeric="numeric" 283 placeholder="@fieldPlaceholder" /> 284 <i class="fal fa-check checkmark"></i> 285 <i class="fal fa-times cross"></i> 286 </div> 287 <div class="errormessage"></div> 288 </section> 289 break; 290 case "Select": 291 <section class="form__item @fieldCssClass"> 292 <div class="input__group form-item__input form-group"> 293 <label class="form__input-label input__label" for="@fieldHtmlId"> 294 @fieldName @(fieldRequired ? "*" : "") 295 @if(!string.IsNullOrWhiteSpace(fieldDescription)) 296 { 297 <span class="form__input-tooltip" data-tippy-content="@field.GetString("Field.Description")"> 298 <i class="fal fa-info-circle"></i> 299 </span> 300 } 301 </label> 302 <select id="@fieldHtmlId" name="@fieldHtmlId" class="form__input input input--text" tabindex="@fieldTabindex" @(fieldRequired ? "required verplicht=\"verplicht\" " : "") erroralias="StrErrorMsgOptionList"> 303 @foreach (var o in field.GetLoop("Options")) 304 { 305 string selected = o.GetBoolean("Option.DefaultSelected") ? "selected" : ""; 306 bool isActive = o.GetBoolean("Option.Active"); 307 if(isActive) 308 { 309 <option value="@o.GetString("Option.Value")" @selected>@o.GetString("Option.Text")</option> 310 } 311 } 312 </select> 313 </div> 314 <div class="errormessage"></div> 315 </section> 316 break; 317 case "Textarea": 318 <section class="form__item @fieldCssClass"> 319 <div class="input__group form-item__input form-group"> 320 <label class="form__input-label input__label" for="@fieldHtmlId"> 321 @fieldName @(fieldRequired ? "*" : "") 322 @if(!string.IsNullOrWhiteSpace(fieldDescription)) 323 { 324 <span class="form__input-tooltip" data-tippy-content="@field.GetString("Field.Description")"> 325 <i class="fal fa-info-circle"></i> 326 </span> 327 } 328 </label> 329 <textarea class="input--text form__input form__input--textarea" 330 id="@fieldHtmlId" 331 name="@fieldHtmlId" 332 tabindex="@fieldTabindex" 333 placeholder="@fieldPlaceholder" 334 rows="10" 335 erroralias="StrErrorMsgName" 336 @(fieldRequired ? "required minchar=\"1\" " : "")></textarea> 337 </div> 338 <div class="errormessage"></div> 339 </section> 340 break; 341 case "CheckBox": 342 <section class="form__item @fieldCssClass"> 343 <div class="input__group form-item__input form-group checkbox__group"> 344 <div class="checkbox__group-options"> 345 <input type="checkbox" id="@fieldHtmlId" name="@fieldHtmlId" @(fieldRequired ? "required verplicht=\"verplicht\" " : "") erroralias="StrErrorMsgCheckbox" /> 346 <label for="@fieldHtmlId" tabindex="@fieldTabindex">@fieldName @(fieldRequired ? "*" : "")</label> 347 @if(!string.IsNullOrWhiteSpace(fieldDescription)) 348 { 349 <span class="form__input-tooltip" data-tippy-content="@fieldDescription"> 350 <i class="fal fa-info-circle"></i> 351 </span> 352 } 353 </div> 354 </div> 355 <div class="errormessage"></div> 356 </section> 357 break; 358 case "Radio": 359 <section class="form__item @fieldCssClass"> 360 <div class="input__group form-item__input form-group radio__group radio__group--list"> 361 <label class="input__label radio__group-label" for="@fieldHtmlId" tabindex="@fieldTabindex"> 362 @fieldName @(fieldRequired ? "*" : "") 363 @if(!string.IsNullOrWhiteSpace(fieldDescription)) 364 { 365 <span class="form__input-tooltip" data-tippy-content="@fieldDescription"> 366 <i class="fal fa-info-circle"></i> 367 </span> 368 } 369 </label> 370 <div class="radio__group-options">@fieldControl</div> 371 </div> 372 <div class="errormessage"></div> 373 </section> 374 break; 375 case "CheckBoxList": 376 <section class="form__item @fieldCssClass"> 377 <div class="input__group form-item__input form-group checkbox__group checkbox__group--list"> 378 <label class="input__label checkbox__group-label" for="@fieldHtmlId" tabindex="@fieldTabindex"> 379 @fieldName @(fieldRequired ? "*" : "") 380 @if(!string.IsNullOrWhiteSpace(fieldDescription)) 381 { 382 <span class="form__input-tooltip" data-tippy-content="@fieldDescription"> 383 <i class="fal fa-info-circle"></i> 384 </span> 385 } 386 </label> 387 <div class="checkbox__group-options">@fieldControl</div> 388 </div> 389 <div class="errormessage"></div> 390 </section> 391 break; 392 case "File": 393 <section class="form__item @fieldCssClass"> 394 <div class="input__group form-item__input form-group fileinput__group"> 395 <label class="input__label fileinput__group-label" for="@fieldHtmlId"> 396 <span class="fileinput__label"> 397 @fieldName @(fieldRequired ? "*" : "") 398 @if(!string.IsNullOrWhiteSpace(fieldDescription)) 399 { 400 <span class="form__input-tooltip" data-tippy-content="@fieldDescription"> 401 <i class="fal fa-info-circle"></i> 402 </span> 403 } 404 </span> 405 <span class="block relative flex flex-col"> 406 <span class="btn btn__primary fileinput__btn"> 407 <span class="btn__text">@Translate("Choose file", "Choose file")</span> 408 <i class="btn__icon fas fa-file-upload"></i> 409 </span> 410 <span class="fileinput__result"></span> 411 </span> 412 </label> 413 <input type="file" class="fileinput" id="@fieldHtmlId" name="@fieldHtmlId" @(fieldRequired ? "required " : "") tabindex="@fieldTabindex" /> 414 </div> 415 <div class="errormessage"></div> 416 </section> 417 break; 418 } 419 } 420 421 @helper RenderSubmit(string text, string icon, int tabIndex = 100) 422 { 423 <div class="default-contact-form__submit"> 424 <button class="btn btn__primary" type="submit" tabindex="@tabIndex"> 425 <span class="btn__text">@text</span> 426 <i class="btn__icon @icon"></i> 427 </button> 428 </div> 429 } 430 431 @SnippetStart("FormDatalayerEvents") 432 @{ 433 string destinationPage = $"/Default.aspx?ID={Pageview.Page.ID}"; 434 } 435 436 <script> 437 if(window.dataLayer) { 438 var formElement = document.getElementById('@formId'); 439 var formStartFired = {}; 440 441 formElement.addEventListener('focus', function(event) { 442 if(event.target.tagName.toLowerCase() === 'input') { 443 if(!formStartFired['@formId']) { 444 dataLayer.push({ 445 'event': 'form_start', 446 'form_id': '@formId', 447 'form_name': '@formName', 448 'form_destination': '@destinationPage', 449 }); 450 formStartFired['@formId'] = true; 451 } 452 } 453 }, true); 454 455 formElement.addEventListener('validFormSubmit', function(event) { 456 var submitEl = formElement.querySelector('[type="submit"]'); 457 var submitText = submitEl.querySelector('.btn__text').innerHTML; 458 dataLayer.push({ 459 'event': 'form_submit', 460 'form_id': '@formId', 461 'form_name': '@formName', 462 'form_destination': '@destinationPage', 463 'form_submit_text': submitText, 464 }); 465 }); 466 } 467 </script> 468 @SnippetEnd("FormDatalayerEvents") 469 470 @{ 471 string name = Pageview.User.UserName; 472 string email = Pageview.User.Email; 473 string externalId = Pageview.User.ExternalID; 474 string customerNumber = Pageview.User.CustomerNumber; 475 476 string rmaFieldName = GetString("Form.Field.RMA.SystemName"); 477 string emailFieldName = GetString("Form.Field.Email.SystemName"); 478 } 479 480 <section class="container"> 481 <form method="post" action="@formAction" enctype="multipart/form-data" class="@formCssClass form-validate default-contact-form" id="@formId" onsubmit="@formOnSubmit"> 482 @formSystemFields 483 <input type="hidden" name="@emailFieldName" id="@emailFieldName" value="@email" /> 484 <div id="jvd_rma_form" data-name="@name" data-email="@email" data-externalid="@externalId" data-number="@customerNumber" data-field-name="@rmaFieldName"></div> 485 </form> 486 </section> 487
Haut de Page