void _Initialize(ViewContext viewContext) { if (viewContext == null) { throw new ArgumentNullException("viewContext"); } ViewDataDictionary viewData = viewContext.ViewData; if (viewData == null) { throw new ArgumentNullException("viewData"); } string attemptedValue = viewData.GetModelAttemptedValue(Name); Value = attemptedValue ?? viewData.EvalString(Name); ModelState modelState; if (viewData.ModelState.TryGetValue(Name, out modelState)) { if (modelState.Errors.Count > 0) { AddClass(InvalidCssClass); } } }
void _Initialize(ViewContext viewContext) { if (viewContext == null) { throw new ArgumentNullException("viewContext"); } ViewDataDictionary viewData = viewContext.ViewData; if (viewData == null) { throw new ArgumentNullException("viewData"); } string attemptedValue = viewData.GetModelAttemptedValue(Name); if (Type == InputTypes.CheckBox) { if (!string.IsNullOrEmpty(attemptedValue)) { bool isChecked; // The attempted value will be "true,false" or "false" - split to be on the safe side. string[] attemptedValues = attemptedValue.Split(','); if (bool.TryParse(attemptedValues[0], out isChecked)) { if (isChecked) { Attributes["checked"] = "checked"; } else { Attributes.Remove("checked"); } } } } else if (Type == InputTypes.RadioButton) { if (!string.IsNullOrEmpty(attemptedValue)) { string value = Attributes.Value("value"); if (value.Equals(attemptedValue, StringComparison.InvariantCultureIgnoreCase)) { Attributes["checked"] = "checked"; } else { Attributes.Remove("checked"); } } } else if (Type != InputTypes.File) { if (attemptedValue != null) { Attributes["value"] = attemptedValue; } else if (viewData[Name] != null) { Attributes["value"] = viewData.EvalString(Name); } } ModelState modelState; if (viewData.ModelState.TryGetValue(Name, out modelState)) { if (modelState.Errors.Count > 0) { AddClass(InvalidCssClass); } } }