Asp.Net form赋值model
来源:互联网 发布:cad网络拓扑图下载 编辑:程序博客网 时间:2024/06/05 01:05
/// <summary>
/// 为Model赋值,下面是调用实例
/// 约定:表单项的名称最好和实体类的属性名字对应(如果你要不一样,反射方法根据自己的规则改造下)。
/// 为表单赋值,如果是webform的话也可以采取这种方式,可以自己写下,原理差不多。
/// </summary>
/// <typeparam name="T">Model</typeparam>
/// <param name="t">model</param>
/// <param name="form">Request</param>
/// <returns></returns>
public static int GetPost<T>(ref T t, NameValueCollection form)
{
int va = 0;
Type type = t.GetType(); //获取类型
PropertyInfo[] pi = type.GetProperties(); //获取属性集合
foreach (PropertyInfo p in pi)
{
if (form[p.Name] != null)
{
try
{
if (!p.PropertyType.IsGenericType)//判断为Nullable的属性
{
p.SetValue(t, Convert.ChangeType(form[p.Name], p.PropertyType), null);//为属性赋值,并转换键值的类型为该属性的类型
va++; //记录赋值成功的属性数
}
else
{
p.SetValue(t, Convert.ChangeType(form[p.Name], Nullable.GetUnderlyingType(p.PropertyType)), null);//为属性赋值,并转换键值的类型为该属性的类型
va++; //记录赋值成功的属性数
}
}
catch
{
}
}
}
return va;
}
/// 为Model赋值,下面是调用实例
/// 约定:表单项的名称最好和实体类的属性名字对应(如果你要不一样,反射方法根据自己的规则改造下)。
/// 为表单赋值,如果是webform的话也可以采取这种方式,可以自己写下,原理差不多。
/// </summary>
/// <typeparam name="T">Model</typeparam>
/// <param name="t">model</param>
/// <param name="form">Request</param>
/// <returns></returns>
public static int GetPost<T>(ref T t, NameValueCollection form)
{
int va = 0;
Type type = t.GetType(); //获取类型
PropertyInfo[] pi = type.GetProperties(); //获取属性集合
foreach (PropertyInfo p in pi)
{
if (form[p.Name] != null)
{
try
{
if (!p.PropertyType.IsGenericType)//判断为Nullable的属性
{
p.SetValue(t, Convert.ChangeType(form[p.Name], p.PropertyType), null);//为属性赋值,并转换键值的类型为该属性的类型
va++; //记录赋值成功的属性数
}
else
{
p.SetValue(t, Convert.ChangeType(form[p.Name], Nullable.GetUnderlyingType(p.PropertyType)), null);//为属性赋值,并转换键值的类型为该属性的类型
va++; //记录赋值成功的属性数
}
}
catch
{
}
}
}
return va;
}
0 0
- Asp.Net form赋值model
- Asp.net - Razor - 将Model中变量的值赋值给Javascript变量
- asp.net form验证
- asp.net form验证
- asp.net form验证
- asp.net form验证
- Asp.Net Form身份验证
- asp.net form验证
- Asp.net Form Action
- Asp.Net Form验证
- asp.net MVC中的@model与Model
- The ASP.NET Object Model
- 【转】ASP.NET Process Model
- Asp.net MVC Model Binding
- asp.net mvc model 汇总
- ASP.NET MVC2 Model验证
- ASP.NET MVC - Model Binding
- Asp.net Asyn Programming model
- sync_binlog innodb_flush_log_at_trx_commit 浅析
- Java NIO与IO的详细区别(通俗篇)
- JavaSE_3th_方法的重载
- hdu 1686 Oulipo(KMP)
- Android代码同步问题之(二)
- Asp.Net form赋值model
- Android 图片压缩
- eclipse从数据库逆向生成Hibernate实体类
- 【转】总局公开回应质疑:TVOS不是安卓
- bootstrap——css样式(三、表格)
- 跟我一起云计算(1)——storm
- 好用的jq拖拽插件
- 有理贝塞尔曲线(Rational Bezier Curves)
- git 回滚到tag版本 并提交远程仓库