运用反射给实体赋值,跟据控件命名
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
/// <summary>
///实体类赋值
/// 注意:控件名称需要和数据库字段名称一致
/// </summary>
/// <param name="t">实体对象</param>
/// <param name="form">Request.Form</param>
/// <param name="controlPrefix">控件前缀数据(服务端控件生成HTML时自动加入部分)</param>
/// <returns></returns>
public static int GetPost(ref T t, NameValueCollection form, string[] controlPrefixs)
{
int va = 0;
Type type = t.GetType();//获取类型
PropertyInfo[] pi = type.GetProperties();//获取属性集合
for (int i = 0; i < controlPrefixs.Length; i++)
{
foreach (PropertyInfo p in pi)
{
if (form[controlPrefixs[i] + p.Name] != null)
{
try
{
p.SetValue(t, Convert.ChangeType(form[controlPrefixs[i] + p.Name], p.PropertyType), null);//为属性赋值,并转换键值的类型为该属性的类型
va++;//记录赋值成功的属性数
}
catch (Exception ee)
{
}
}
}
}
return va;
}
///实体类赋值
/// 注意:控件名称需要和数据库字段名称一致
/// </summary>
/// <param name="t">实体对象</param>
/// <param name="form">Request.Form</param>
/// <param name="controlPrefix">控件前缀数据(服务端控件生成HTML时自动加入部分)</param>
/// <returns></returns>
public static int GetPost(ref T t, NameValueCollection form, string[] controlPrefixs)
{
int va = 0;
Type type = t.GetType();//获取类型
PropertyInfo[] pi = type.GetProperties();//获取属性集合
for (int i = 0; i < controlPrefixs.Length; i++)
{
foreach (PropertyInfo p in pi)
{
if (form[controlPrefixs[i] + p.Name] != null)
{
try
{
p.SetValue(t, Convert.ChangeType(form[controlPrefixs[i] + p.Name], p.PropertyType), null);//为属性赋值,并转换键值的类型为该属性的类型
va++;//记录赋值成功的属性数
}
catch (Exception ee)
{
}
}
}
}
return va;
}