手机
当前位置:查字典教程网 >编程开发 >asp.net教程 >ASP.NET中实现Form表单字段值自动填充到操作模型中
ASP.NET中实现Form表单字段值自动填充到操作模型中
摘要:这篇文章主要介绍了中实现Form表单字段值自动填充到操作模型中,本文模仿MVC模式中的自动映射表单了模型,使用泛型和反射实现,需要的朋友可以...

这篇文章主要介绍了中实现Form表单字段值自动填充到操作模型中,本文模仿MVC模式中的自动映射表单了模型,使用泛型和反射实现,需要的朋友可以参考下

我们知道 MVC有个强大的地方就是Form表单提交到action的时候,可以直接将Form的参数直接装配到action的参数实体对象中

比如

代码如下:

action方法 Register(UserModel userModel)

{

.............................

}

在提交表单的时候,会自动讲表单里面的字段封装到对应的UserModel字段里面

那么 WebForm里面可不可以也紫将呢?

因为每次都要去获得数据,优秀的程序员应该要学会代码封装,代码复用,重复的工作不要做

我们其实可以利用反射来实例化对象的(自动装配)

好了废话不多....

pageload里面很简单了

代码如下:

protected void Page_Load(object sender, EventArgs e)

{

if (!IsPost())

{

InitPage();//第一次访问呈现页面

}

else

{

UserModel userModel = AssembleModel(base.valueCollection);

}

}

关键就是基类里面的AssembleModel 方法了

基类里面

我们首先获取到上下文的参数 IT404

代码如下:

protected NameValueCollection valueCollection = HttpContext.Current.Request.Params;

基类很简单,就是将上下文的提交的参数存放到valueCollection

然后再看AssembleModel方法了,这是一个泛型方法

代码如下:

///

/// 反射获取类的属性

///

///

///

protected PropertyInfo[] GetPropertyInfoArray(Type type)

{

PropertyInfo[] props = null;

try

{

object obj = Activator.CreateInstance(type);

props = type.GetProperties(BindingFlags.Public | BindingFlags.Instance);

}

catch (Exception ex)

{

}

return props;

}

///

/// 根据NameValueCollection 自动装配

///

///

///

///

protected T AssembleModel(NameValueCollection valueCollection)

{

PropertyInfo[] propertyInfoList = GetPropertyInfoArray(typeof(T));

object obj = Activator.CreateInstance(typeof(T), null);//创建指定类型实例

foreach (string key in valueCollection.Keys)//所有上下文的值

{

foreach (var PropertyInfo in propertyInfoList)//所有实体属性

{

if (key.ToLower() == PropertyInfo.Name.ToLower())

{

PropertyInfo.SetValue(obj, valueCollection[key], null);//给对象赋值

}

}

}

return (T)obj;

}

很简单,就是遍历参数,然后用反射遍历出实体类的共有属性,然后根据名字name来匹配和赋值

所以以后我们只需要一句代码 就能自动装配上从客户端存过来的值了

代码如下:

UserModel userModel = AssembleModel(base.valueCollection);

【ASP.NET中实现Form表单字段值自动填充到操作模型中】相关文章:

ASP.NET使用正则表达式屏蔽垃圾信息

.net下实现Word动态填加数据打印

ASP.NET中为DataGrid添加合计字段

ASP.NET 重定向的几种方法小结

ASP.NET实现的简单易用文件上传类

浅谈ASP.NET中多层架构

ASP.NET程序中用Repeater实现分页

ASP.NET中实现Form表单字段值自动填充到操作模型中

ASP.NET 页面中加添加用户控件的写法

ASP.NET中使用Application对象实现简单在线人数统计功能

精品推荐
分类导航