MVC forms in Umbraco

I've had a lot of trouble working out how to create forms in Umbraco because a lot of the documentation around is either for an old version of Umbraco, using a third party library or just not very helpful!

I've finally found out the trick when working with MVC and surface controllers, and it's very simple once you get to know it, it's definately not as hard a lot of tutorials make it seem.

To get your form working you're going to need to know what a controler is and what it does, so if you don't it's basically an area of code that handles every thing for your forms actions, think of it as the .cs file behind a user control.

For the purpose of this tutorial, I'll show you how to create a comment form, so we're going to start off with creating a partial view in the 'Partials' folder within the 'Views' folder, we'll then add the basic code needed to render the form and link it to a custom surface controller that we'll create in the 'App_Code' folder.

Step 1: Create the partial

Create a partial view in the 'Partials' folder located under the 'Views' folder and name it 'ContactForm' this will be where the GUI part of the form is located, it'll also be what's called from our view page to render the form.

Step 2: Adding the form

To create forms in MVC you can use a neat way of adding elements instead of writing the HTML, for example we can use 'LabelFor', 'EditorFor' and 'ValidationMessageFor' pretty neat right? All of these are preceded by '@Html.' because they're located under the 'Html' class.

See my example below and paste it into a partial view called 'CommentForm' to get started.

@inherits Umbraco.Web.Mvc.UmbracoViewPage
@{
    Layout = null;
}

@using (Html.BeginUmbracoForm("SubmitComment", "CommentFormSurface"))
{
  @Html.LabelFor(x => Model.Name)
  @Html.EditorFor(x => Model.Name)
  @Html.ValidationMessageFor(x => Model.Name)

  @Html.LabelFor(x => Model.Email)
  @Html.EditorFor(x => Model.Email)
  @Html.ValidationMessageFor(x => Model.Email)

  @Html.LabelFor(x => Model.Comment)
  @Html.EditorFor(x => Model.Comment)
  @Html.ValidationMessageFor(x => Model.Comment)
}

This is esseintially the form that people will see and use on our website, it is linked to a model and controller which we will create in step three by means of an inherits statement in the first line which calls the 'CommentFormModel'.

 

Step Three: Setting up the model and controller

To create the model and controller, you need to create a new class file in the 'App_Code' folder and call it 'CommentController', within this file, you'll add the model and surface controller for your form, copy and paste the below code into the class file to get started.

using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Net.Mail;
using System.Text;
using System.Web;
using System.Web.Mvc;
using Umbraco.Web.Mvc;
using umbraco.BusinessLogic;
using umbraco.cms.businesslogic.web;

namespace LukeAlderton
{
    /// 
    /// Comment form controller deals with all comment systems
    /// 
    public class CommentFormSurfaceController : SurfaceController
    {
        [HttpPost]
        public ActionResult SubmitComment(CommentFormModel model)
        {
            //model not valid, do not save, but return current umbraco page
            if (!ModelState.IsValid)
            {        
                return CurrentUmbracoPage();
            }

            // Create the comment and add then data then publish it
            User author = new User(0);
            Document comment = Document.MakeNew(model.Name, DocumentType.GetByAlias("uBlogsyComment"), author, CurrentPage.Children.First().Id);
            comment.getProperty("uBlogsyCommentName").Value = model.Name;
            comment.getProperty("uBlogsyCommentEmail").Value = model.Email;
            comment.getProperty("uBlogsyCommentWebsite").Value = model.Website;
            comment.getProperty("uBlogsyCommentMessage").Value = model.Comment;
            comment.Publish(author);
            umbraco.library.UpdateDocumentCache(comment.Id);

            // Add date to the page
            //TempData.Add("SubmissionMessage", "Your comment was successfully submitted");

            // Redirect to current page to clear the form
            return RedirectToCurrentUmbracoPage();

            // Redirect to specific page
            //return RedirectToUmbracoPage(2525);
        }
    }

    public class CommentFormModel
    {
        [Required]
        [Display(Name = "Name")]
        public string Name { get; set; }

        [Required]
        [RegularExpression(@"^(([A-Za-z0-9]+_+)|([A-Za-z0-9]+\-+)|([A-Za-z0-9]+\.+)|([A-Za-z0-9]+\++))*[A-Za-z0-9]+@((\w+\-+)|(\w+\.))*\w{1,63}\.[a-zA-Z]{2,6}$", ErrorMessage = "Invalid Email Address")]
        public string Email { get; set; }

        [DataType(DataType.Url)]
        public string Website { get; set; }

        [Required]
        [DataType(DataType.MultilineText)] 
        public string Comment { get; set; }
    }
}

This controller is designed to replace the comment function of the uBlogsy comment system which adds a node under the post, within the comments node.

The top class called 'CommentFormSurfaceController' is the surface controller and it handles everything that happens after the form has been submitted, in our case we call the method 'SubmitComment' to add a comment to the post via it.

The lower class called 'CommentFormModel' is our view model and it handles the variables available to us and what they should be displayed as, this model has four variables which can all be accessed via 'model.variablename'.

Step Four: Using the form

To Use the form you simply add the following line into any view in your website:

@Html.Partial("CommentForm",new LukeAlderton.CommentFormModel())

It's as simple as that!

Also note that you can't have a form surrounding your whole page when using this because the form will just post the data as a querystring.


Published at

Tags: Umbraco,MVC

Luke Alderton

Comments

Connie
Why do you have the TempData line commented out? I am struggling with an issue where I can only get the TempData value to display in the partial that contains the form. It will not display on the parent view, even though that is the next http request.
22/04/2015
Luke
Connie, TempData is commented out because it's an option if you want to display some custom text when the page reloads. Have you read the TempData value? You can call TempData.Keep("somekeyname"); To make sure it is kept next time it's been read.
22/04/2015
Sumit
BeginUmbracoForm this is an error i am facing again and again in view/partial how to resolve it(System.Web.WebPages.Html.HtmlHelper' does contain defination for BeginUmbracoForm and no extention method 'BeginUmbracoForm' accepting a .....etc
26/07/2016
Archie
The high-interest, short-term loans may even be a little more damaging to individuals who previously thought. According on the FTC complaint PDF , the operation purchased the information through the lead generators and, without approval from your borrower, tried on the extender to deposit money — typically between $200 to $300 — in a borrower's account. A Regina mother is cautioning against pay day loans after watching her son rack up a huge number of dollars in debt to guide a cocaine and crystal meth addiction. payday loans online Recording a verdict of suicide she added: 'I think matters had simply got too much for him. IHMVCU understands how important access to cash is made for financial stability, ” said Ben Morales, CEO of QCash Financial. Nineteen from the states that authorize payday lending allow lenders to roll over financing, by which case the borrower pays only the interest fee and extends the money for a couple weeks.
16/05/2018
Klaus
The Rhode Island Department of Health sets the typical for approved courses in hawaii, and approves and manages programs, so make sure how the course you decide on is accredited by them cna classes san diego cna classes wichita ks cna night classes in san diego, california, a cna can expect to earn $32,699 a year on average, well across the national median. The CNA cannot work like a Certified Nurse Assistant in a very Long-Term Care (LTC) facility when listed as Expired cna classes dallas tx https://cnaclasses.us.com/ cna training classes cna jobs are for the rise as well as the trend isn't expected to slow down soon.
17/05/2018
AkikoTax
Absolutely NEW update of SEO/SMM software "XRumer 16.0 XEvil": captchas regignizing of Google, Facebook, Bing, Hotmail, SolveMedia, Yandex, and more than 8400 another categories of captchas, with highest precision (80..100%) and highest speed (100 img per second). You can connect XEvil 3.0 to all most popular SEO/SMM programms: XRumer, GSA SER, ZennoPoster, Srapebox, Senuke, and more than 100 of other programms. Interested? There are a lot of impessive videos about XEvil in YouTube. Good luck ;)
20/05/2018
Helenpaups
Revolutional update of captcha regignizing software "XRumer 16.0 XEvil 4.0": captchas solving of Google (ReCaptcha-2 and ReCaptcha-3), Facebook, BitFinex, Bing, Hotmail, SolveMedia, Yandex, and more than 8400 another categories of captchas, with highest precision (80..100%) and highest speed (100 img per second). You can use XEvil 4.0 with any most popular SEO/SMM software: iMacros, XRumer, GSA SER, ZennoPoster, Srapebox, Senuke, and more than 100 of other software. Interested? You can find a lot of introducing videos about XEvil in YouTube. FREE DEMO AVAILABLE! See you later ;) http://XEvil.net/
23/05/2018
Helenpaups
Revolutional update of captchas breaking software "XRumer 16.0 XEvil 4.0": captchas regignizing of Google (ReCaptcha-2 and ReCaptcha-3), Facebook, BitFinex, Bing, Hotmail, SolveMedia, Yandex, and more than 8400 another categories of captchas, with highest precision (80..100%) and highest speed (100 img per second). You can use XEvil 4.0 with any most popular SEO/SMM programms: iMacros, XRumer, GSA SER, ZennoPoster, Srapebox, Senuke, and more than 100 of other programms. Interested? You can find a lot of impessive videos about XEvil in YouTube. FREE DEMO AVAILABLE! Good luck ;) http://XEvil.net/
23/05/2018
Robertfrold
https://liveam.tv/
03/06/2018
ScottKem
รู้จักกับ LETOU คาสิโน คาสิโนออนไลน์ Letou หรือเว็บไซต์รับพนันเกมออนไลน์ชื่อดังที่หลายคนรู้จักกันดีในชื่อ letou.co.uk เป็นผู้ให้บริการรับพนันเกมคาสิโนออนไลน์รายใหญ่รายหนึ่งในทวีปเอเชีย ค่ายเกมที่เต็มไปด้วยสีสันและความสนุก ภายใต้การบริการอย่างเป็นมืออาชีพ ทำให้สมาชิกทุกคนได้รับความบันเทิงและลุ้นเงินรางวัล พร้อมของขวัญมูลค่าสูงมากมาย ด้วยเงินเดิมพันขั้นต่ำเท่านั้น ดังนั้นสำหรับผู้ที่มองหาความคุ้มค่าในการเล่นคาสิโนออนไลน์ สมัครสมาชิกกับ Letou คาสิโน รับรองว่าไม่ผิดหวังแน่นอน บริการเกม Letou คาสิโน เว็บไซต์แห่งนี้เหมาะสมอย่างยิ่งสำหรับผู้เล่นที่โปรดปรานความเรียบง่าย แต่สนุกแบบเข้มข้น เพราะที่นี่มีบริการภาพรวมเพียงแค่ 3 หมวด ได้แก่ หมวดหน้ากีฬา รับพนันกีฬาออนไลน์ด้วยอัตราต่อรองมาตรฐานสากล, หมวดคาสิโนสด ให้ผู้เล่นสนุกกับเกมโต๊ะได้บรรยากาศเหมือนกับในสถานคาสิโนจริง และหมวดสล็อต แหล่งรวมเกมเล่นง่าย เต็มตากับสุดยอดกราฟิก พร้อมเงินแจ็คพ็อตให้ลุ้นได้ตลอด 24 ชั่วโมง ซึ่งในแต่ละหมวดของ Letou คาสิโน ต่างก็ได้รับการคัดสรรเกมมาฮิตจากทั่วโลกมาแล้วเป็นอย่างดี ผู้เล่นจึงมั่นใจได้ว่าช่วงเวลาที่เล่นเกมกับเว็บไซต์แห่งนี้ จะเป็นช่วงเวลาแห่งความสุขและสนุกสนานอย่างสมบูรณ์แบบ http://letou55.com - ทางเข้าletou คาสิโนสด Letou thai หากคุณเป็นผู้เล่นที่ชื่นชอบและใฝ่ฝันที่จะเล่นเกมคาสิโนในสถานคาสิโนจริงๆ แต่ยังไม่มีโอกาสได้ไปสัมผัสล่ะก็ วันนี้ Letou คาสิโน ถือเป็นคำตอบสุดท้ายที่ดีที่สุดสำหรับคุณ เพราะเว็บไซต์แห่งนี้ได้นำสถานคาสิโน พร้อมดีลเลอร์สาวสวยสุดโปร มาบริการคุณถึงบ้าน! เพียงแค่ผู้เล่นล็อกอินเข้าสู่เกมเท่านั้น ก็จะได้สนุกกับเกมคาสิโนยอดฮิต อย่าง เกมไพ่บาคาร่า, เกมวงล้อรูเล็ต, เกมไพ่แบล็คแจ็ค ฯลฯ ซึ่งคาสิโนสดของที่นี่ก็แบ่งห้องออกเป็น 4 คลับด้วยกัน ได้แก่ ฟินิกซ์คลับ, ดราก้อนคลับ, ไทเกอร์คลับ และเทอร์เทิลคลับ โดยแต่ละคลับจะมีอารมณ์และธีมที่แตกต่างกันไป แต่สิ่งที่มีไม่ต่างกันคือ ดีลเลอร์สาวสุดเซ็กซี่ที่จะคอยให้บริการผู้เล่นอยู่ตลอด 24 ชั่วโมง ให้คุณได้เล่นสดๆ ลุ้นสดๆ จากการถ่ายทอดผ่านระบบของเว็บไซต์ งานนี้สำหรับผู้เล่นที่กังวลเรื่องการโกงหรือล็อบบี้ผลไพ่ สบายใจหายห่วงได้อย่างแน่นอน เกมคาสิโนอื่นๆ ที่ Letou asia ผู้เล่นที่โปรดปรานการเล่นเกมที่มีกราฟิกสวยงามสมจริง เล่นง่าย และได้โบนัสจำนวนมากๆ รวมทั้งเน้นเกมที่ลุ้นสนุกๆ ต้องห้ามพลาดเด็ดขาด กับหมวดเกมสล็อตออนไลน์ของคาสิโน Letou เพราะที่นี่มีไฮไลท์สุดอลังการ คือ เป็นแหล่งรวบรวมเกมสล็อตออนไลน์จากค่ายดัง จำนวนกว่า 1,000 เกม มาไว้ให้แล้ว คุณสามารถเลือกสนุกได้ตามสไตล์ที่ต้องการ ไม่ว่าจะเป็นเกมสล็อตแนวโหด แนวเซ็กซี่ แนวผจญภัย แนวต่อสู้ แนวน่ารักใสๆ ฯลฯ ซึ่งหากความสนุกจากการสปินและรับโบนัสรัวๆ ต่อรอบ ยังไม่พอกับความต้องการของคุณล่ะก็ ในหมวดสล็อตคาสิโนของที่นี่ ผู้เล่นยังสามารถร่วมลุ้นแจ็คพ็อตก้อนโต ไปกับโปรเกรสซีฟแจ็คพ็อต เงินรางวัลมหาศาลจำนวน 8 หลัก! หากคุณดวงดีพอ ชนะได้ ก็รับเงินสดหลักล้านกันไปเลย! นอกจากนี้สำหรับผู้เล่นที่ชื่นชอบลองของสนุกแบบใหม่ๆ เราขอแนะนำให้คุณแวะไปที่หมวดเกมยิงปลามหาเฮง เกมดังที่ได้รับการพัฒนาจากค่ายเกมชั้นนำอย่างเพลย์เทค เพราะเราขอบอกว่าเกมนี้เล่นสนุก และให้คุณลุ้นรับเงินรางวัลได้แบบชิลๆ เช่นกัน อยากเล่นคาสิโนออนไลน์กับ Letou ต้องทำอย่างไร ขั้นตอนการร่วมสนุกกับคาสิโนออนไลน์ Letou ง่ายๆ หากคุณสนใจอยากจะลองใช้บริการเว็บไซต์แห่งนี้เพื่อความสนุกและบันเทิง คุณสามารถเข้าไปยังหน้าเว็บไซต์ของผู้ให้บริการ เพื่อทำการสมัครสมาชิกกับ Letou จากนั้นจึงทำตามขั้นตอนเพื่อฝากเงินเข้าสู่ระบบ และหลังจากได้รับการตรวจสอบอย่างครบถ้วนแล้ว สมาชิกก็จะสามารถนำเงินเครดิตที่มีในระบบไปใช้เดิมพันได้กับเกมคาสิโนทุกเกมของเว็บไซต์แห่งนี้ได้ทันที โดยขั้นตอนการฝากเงินทั้งหมดนี้ ใช้เวลาเฉลี่ยเพียง 1 นาทีเท่านั้น นับว่าเป็นบริการที่รวดเร็วทันใจ และทำให้ Letou คาสิโน แตกต่างกับเว็บไซต์รับพนันคาสิโนออนไลน์รายอื่นๆ อย่าลืมว่าหลังจากสมัครสมาชิกกับคาสิโนออนไลน์แห่งนี้แล้ว คุณสามารถขอรับโบนัสแรกเข้าได้ทันที โดยที่นี่จะมีการแจกเงินให้กับสมาชิกใหม่ 100% พร้อมทั้งสิทธิประโยชน์อื่นๆ ทั้งโปรโมชั่นคืนเงินเมื่อเล่นเสีย ของขวัญวันเกิด หรือตั๋วเครื่องบินไปชมฟุตบอลถึงสนามในยุโรป ดังนั้น เพียงสมัครสมาชิกไม่กี่ขั้นตอน นอกจากจะได้สนุกกับเกมมันส์ๆแล้ว ยังได้มีโอกาสลุ้นของรางวัลมูลค่าสูง ตามนั้นโบนัสอื่นๆ อีกด้วย http://letou55.com - ทางเข้าletou ความโดดเด่นของ Letou คาสิโน – ฝากถอนรวดเร็ว ขั้นตอนสำเร็จภายใน 1 นาที – เกมสล็อตออนไลน์หลากหลายกว่า 1,000 เกม – หมวดเกมเรียบง่าย และสนุกเข้มข้น – รางวัลโปรเกรสซีฟแจ็คพ็อตมูลค่ามหาศาล เดิมพันกับ Letou มือถือ ในยุคที่ความสนุกอยู่ในมือคุณ คุณจะต้องการอะไรมากไปกว่าการได้ใช้นวัตกรรมล้ำๆ เพื่อเล่นเกมและให้ความบันเทิงกับตัวเองบนสมาร์ทโฟน และที่ Letou คาสิโน คือหนึ่งในคำตอบที่คุณกำลังมองหา เพราะคุณสามารถร่วมสนุกและลุ้นรับรางวัลเงินสดจากการเดิมพันคาสิโนออนไลน์ได้ตลอดเวลาที่ต้องการ ผ่านอุปกรณ์สื่อสารอย่างสมาร์ทโฟนหรือแท็บเบล็ต ซึ่งสมาชิกสามารถล็อกอินด้วยชื่อบัญชีเดิม ทั้งบนคอมพิวเตอร์พีซีและสมาร์ทโฟน ถือเป็นความสนุกสุดล้ำที่ผู้ให้บริการรายนี้ได้มอบให้กับผู้เล่น ซึ่งไม่ว่าคุณจะเป็นสาวกแอปเปิ้ล หรือใช้มือถือระบบแอนดรอยด์ ก็สามารถสนุกกับเกมคาสิโน Letou ได้อย่างไม่มีสะดุด เพราะทางบริษัทได้วางระบบซัพพอร์ตทั้ง 2 ระบบปฏิบัติการไว้เรียบร้อยแล้ว ในส่วนของเกมที่สามารถเดิมพันผ่าน Letou มือถือ ได้นั้น ผู้เล่นสามารถเลือกได้ตามที่ชื่นชอบ เพราะทุกเกมของเว็บไซต์แห่งนี้ ไม่ว่าจะเป็นเกมคาสิโนสด, เกมสล็อต หรือเกมตกปลา แม้กระทั่งการพนันกีฬา ก็สามารถร่วมสนุกและลุ้นรับเงินรางวัลได้ผ่านช่องทางสมาร์ทโฟน ทุกเกมได้รับการพัฒนามาเป็นอย่างดี ให้สามารถเล่นผ่านอุปกรณ์ขนาดเล็กอย่างสมบูรณ์แบบ หน้าจอไม่ตกหล่น และมีความสวยงามตามขนาดของอุปกรณ์นั้นๆ ช่องทางการฝาก-ถอนเงิน และสกุลเงินที่รองรับ ผู้เล่นคนไทยสามารถฝากและถอนเงินกับ Letou คาสิโน ได้อย่างง่ายๆ ด้วยการทำธุรกรรมผ่านทางธนาคารชั้นนำท้องถิ่นของไทยเรา จะสะดวกช่องทางตู้เอทีเอ็ม​, อินเตอร์เน็ตแบ้งก์กิ้ง หรือเคาท์เตอร์ธนาคาร ก็สามารถทำได้ นับว่าเป็นบริการที่เหมาะสมกับผู้เล่นคนไทยอย่างสมบูรณ์แบบ นอกจากนี้ที่นี่ยังมีระบบการฝากถอนที่รวดเร็ว ทันใจ ทุกขั้นตอนจะได้รับการอนุมัติภายใน 1 นาทีเท่านั้น! ในส่วนของสกุลเงินที่คาสิโนออนไลน์แห่งนี้รองรับ สกุลเงินไทยบาท เป็นหนึ่งในบริการที่คาสิโนออนไลน์ Letou ได้จัดทำเพื่อลูกค้าคนไทยเรียบร้อยแล้ว ดังนั้นคุณจึงเล่นเกมคาสิโนกับที่นี่ได้แบบสบายๆ ช่องทางการติดต่อทีมงานคาสิโน Letou วิธีที่ง่ายและรวดเร็วที่สุด คือการเข้าสู่เว็บไซต์หลักของคาสิโน Letou จากนั้นทางด้านขวาสุดของจอ คุณจะพบกับกล่องข้อความสำหรับทักแชท (แชทสด) โปรแกรมสนทนาสดผ่านเว็บไซต์ที่มีทีมงานมืออาชีพคอยให้ความช่วยเหลือลูกค้าอยู่ตลอด 24 ชั่วโมง หรือจะเลือกแชทผ่านโปรแกรมไลน์ ด้วยการสแกนคิวอาร์โค้ดบนหน้าจอเว็บไซต์ ก็สะดวกได้ไม่แพ้กัน ส่วนลูกค้าที่ต้องการติดต่อทีมงาน พร้อมการส่งหลักฐานใดๆ แนบไปด้วย ทางคาสิโนออนไลน์แห่งนี้ก็มีช่องทางอีเมลให้กับลูกค้าได้สอบถามปัญหาเข้ามาเช่นกัน นอกจากนี้ หากผู้เล่นพบปัญหาขัดข้อง ยังสามารถเข้าไปยังเว็บไซต์หลักของคาสิโนออนไลน์แห่งนี้ และทำการค้นหาที่หมวดคำถามที่พบบ่อย เพราะที่นี่จะมีหมวดของ FAQ คำถามและคำตอบให้สำหรับผู้เล่นได้แก้ไขตรวจสอบและข้อขัดข้องเบื้องต้นด้วยตัวเอง ซึ่งจะช่วยประหยัดเวลาในการต้องติดต่อทีมงานได้เป็นอย่างดี ที่มาของความน่าเชื่อถือของ Letou คาสิโน แน่นอนว่าเป็นบริษัทที่มีเงินทุนและได้รับการตรวจสอบจากสถาบันเฟิร์ส คากายาน ในประเทศฟิลิปปินส์เป็นที่เรียบร้อยแล้ว ดังนั้นทางด้านความน่าเชื่อถือและความมั่นใจเกี่ยวกับความมั่นคง ผู้เล่นจึงสามารถวางใจและหายห่วงได้ 100% ผู้เล่นสามารถเริ่มความสนุกและสร้างประสบการณ์การเดิมพันเกมคาสิโนออนไลน์ใหม่ๆ ได้ที่นี่ ด้วยระบบเกมที่ได้ถูกจัดวางไว้เป็นอย่างดี และเหมาะสมกับการให้บริการระดับนานาชาติ ทำให้วันนี้ คาสิโนออนไลน์ Letou กลายเป็นหนึ่งในคาสิโนออนไลน์ที่มีศักยภาพสูงและพร้อมเข้าสู่ตลาดการแข่งขันคาสิโนออนไลน์อย่างเต็มตัว ไฮไลท์การให้บริการของคาสิโนออนไลน์แห่งนี้ที่คุณไม่ควรพลาด คือการดำเนินการทางการเงินที่รวดเร็วมาก เพราะในการฝากเงิน ใช้เวลาอนุมัติเพียง 1 นาทีเท่านั้น ส่วนการถอนก็ใช้เวลาเพียง 15 นาที นอกจากนี้จำนวนเงินขั้นต่ำในการฝากถอนยังเหมาะสมกับผู้เล่นคนไทย เนื่องจากอัตราที่ไม่สูงมาก เท่ากับเป็นการลดขีดจำกัดในการร่วมสนุก และช่วยให้ผู้เล่นทุกคนเข้าถึงความบันเทิงนี้ได้อย่างง่ายดายยิ่งขึ้น สรุปโดยรวม หากคุณยังคงมีความสงสัยหรือข้องใจในความยอดเยี่ยม หรือการให้บริการของ Letou คาสิโน อย่าเก็บความสงสัยนั้นไว้เฉยๆ เราขอแนะนำให้คุณเข้าไปลองสมัครสมาชิกและเล่นสนุกกับเกมคาสิโนออนไลน์ของที่นี่ดูสักครั้ง เพราะรีวิวฉบับนี้แม้จะเป็นรีวิวอินไซด์ แต่การรับรู้และสัมผัสประสบการณ์โดยตรงด้วยตัวคุณเอง คือสิ่งที่พิสูจน์ได้ดีที่สุด ตรงไปสมัครสมาชิกกับคาสิโน Letou เพียงคลิกเข้าสู่เว็บไซต์หลักของผู้ให้บริการรายนี้บนโลโก้ที่กฎอยู่บนเว็บไซต์ของเรา เราจะนำคุณเข้าสู่โลกแห่งความสนุกของ Letou Thai ในทันที http://letou55.com - ทางเข้าletou
08/06/2018
Post a comment
Sit tight...
We're adding your comment.
Thank you.
Your comment has been added.
There's been a problem.
Please try again later.
Share with
Tags
Latest Comments
By Luke on Auto/Custom height on Xamarin Forms WebView for Android and iOS
15 Jun 2018, 09:43 AM
By vikki on Auto/Custom height on Xamarin Forms WebView for Android and iOS
14 Jun 2018, 13:35 PM
By jimbo on JQuery Unobtrusive Validation for dynamically created elements
13 Jun 2018, 17:13 PM
By ScottKem on MVC forms in Umbraco
8 Jun 2018, 10:29 AM
By Alaa on java.lang.UnsatisfiedLinkError: no rxtxSerial in java.library.path
3 Jun 2018, 20:16 PM
By Robertfrold on MVC forms in Umbraco
3 Jun 2018, 12:11 PM
By Kiran Lad on How to add a Xamarin Forms Loading Screen/Overlay
29 May 2018, 06:39 AM
By jake on Xamarin forms - Stop/Cancel back button event
26 May 2018, 15:24 PM
Categories
App Development
Event
Game Development
Mapping
Modelling
Programming
Review
Robotics
Tutorial
Web Development