Ejemplo n.º 1
0
        /// <summary>
        /// 绑定表单
        /// </summary>
        public void Bind()
        {
            // 绑定值到模型
            OnBind();
            // 把模型中的值设置到字段
            Pair <object, PropertyInfo> property;

            foreach (var field in Form.Fields)
            {
                if (FieldToProperty.TryGetValue(field, out property))
                {
                    field.Value = property.Second.FastGetValue(property.First);
                }
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        /// 提交表单,返回处理结果
        /// </summary>
        /// <returns></returns>
        public object Submit()
        {
            // 把提交的值设置到模型
            var submitValues = Request.GetAllDictionary();
            var values       = Form.ParseValues(submitValues);
            Pair <object, PropertyInfo> property;

            foreach (var field in Form.Fields)
            {
                var value = values.GetOrDefault(field.Attribute.Name);
                if (FieldToProperty.TryGetValue(field, out property))
                {
                    value = value.ConvertOrDefault(property.Second.PropertyType, null);
                    if (value != null)
                    {
                        property.Second.FastSetValue(property.First, value);
                    }
                }
            }
            // 调用提交时的处理
            return(OnSubmit());
        }