public IHtmlNode InputTag()
{
ModelState state;
DateTime? date = null;
ViewDataDictionary viewData = DatePicker.ViewContext.ViewData;
if (DatePicker.Value != DateTime.MinValue)
{
date = DatePicker.Value;
}
else if (viewData.ModelState.TryGetValue(DatePicker.Id, out state))
{
if (state.Errors.Count == 0)
{
date = state.Value.ConvertTo(typeof(DateTime), Culture.Current) as DateTime?;
}
}
object valueFromViewData = viewData.Eval(DatePicker.Name);
if (valueFromViewData != null)
{
date = Convert.ToDateTime(valueFromViewData);
}
string value = string.Empty;
if (date != null)
{
if (string.IsNullOrEmpty(DatePicker.Format))
{
value = date.Value.ToShortDateString();
}
else
{
value = date.Value.ToString(DatePicker.Format);
}
}
return new HtmlTag("input", TagRenderMode.SelfClosing)
.Attributes(new { name = DatePicker.Name, id = DatePicker.Id + "-input", value = value, title = DatePicker.Name })
.Attributes(DatePicker.InputHtmlAttributes)
.PrependClass(UIPrimitives.Input);
}