Beispiel #1
0
        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);
                }
            }
        }
Beispiel #2
0
        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);
                }
            }
        }