jQuery UI has a nice datepicker which can be used nicely with this HtmlHelper

You have to make sure that you have referenced jQuery and jQuery UI and the neccesarely css files before you can use this HtmlHelper.

 
        public static string DatePicker(this HtmlHelper helper, string name, string imageUrl, object date)
        {
            StringBuilder html = new StringBuilder();

            // Build our base input element
            if(name.Contains("."))
                html.Append("<input type=\"text\" id=\"" + name.Split('.')[1] + "\" name=\"" + name + "\"");
            else
                html.Append("<input type=\"text\" id=\"" + name + "\" name=\"" + name + "\"");

            // Model Binding Support
            if (date != null)
            {
                string dateValue = String.Empty;

                if (date is DateTime? && ((DateTime)date) != DateTime.MinValue)
                    dateValue = ((DateTime)date).ToShortDateString();
                else if (date is DateTime && (DateTime)date != DateTime.MinValue)
                    dateValue = ((DateTime)date).ToShortDateString();
                else if (date is string)
                    dateValue = (string)date;

                html.Append(" value=\"" + dateValue + "\"");
            }

            // We're hard-coding the width here, a better option would be to pass in html attributes and reflect through them
            // here ( default to 75px width if no style attributes )
            html.Append(" style=\"width: 75px;\" />");

            // Now we call the datepicker function, passing in our options.  Again, a future enhancement would be to
            // pass in date options as a list of attributes ( min dates, day/month/year formats, etc. )
            if (name.Contains("."))
                html.Append("<script type=\"text/javascript\">$(document).ready(function() { $('#" + name.Split('.')[1] + "').datepicker({ showOn: 'button', buttonImage: '" + imageUrl + "', duration: 0 }); });</script>");
            else
                html.Append("<script type=\"text/javascript\">$(document).ready(function() { $('#" + name + "').datepicker({ showOn: 'button', buttonImage: '" + imageUrl + "', duration: 0 }); });</script>");

            return html.ToString();
        }

Now you can use it in your view like this:

        <div class="editor-label">
            @Html.LabelFor(model => model.AanmaakDatum)
        </div>
        <div class="editor-field">
            @Html.Raw( Html.DatePicker("AanmaakDatum","/images/calendar.png", Model.AanmaakDatum))
            @Html.ValidationMessageFor(model => model.AanmaakDatum)
        </div>

{{opmerking.Naam}}:

{{opmerking.OpmerkingText}}

            

Saving your comment....

Naam is verplicht!
Email is verplicht!
Opmerking is verplicht!