model 和WEB前台页面提交完美自动填充
代码如下
一、请求页面代码
try
{
NameValueCollection pColl = context.Request.Params;
BodyKnow.Model.MPoll_Topic model = new BodyKnow.Model.MPoll_Topic();
BodyKnow.COMP.PageUtil.GetParamsValue(pColl, model);
BodyKnow.Logic.Poll_Topic dal = new BodyKnow.Logic.Poll_Topic();
dal.Update (model); //更新数据
log.Info("修改主题 id=" + model.TopicID );
}
catch (Exception ex)
{
log.Error(ex.Message);
}
二、页面填充函数代码
/// <summary>
/// 页面参数填充model
/// </summary>
/// <param name="pColl">参数</param>
/// <param name="m">model对象</param>
public static void GetParamsValue(NameValueCollection pColl, object m)
{
for (int i = 0; i <= pColl.Count - 1; i++)
{
PropertyInfo pi = m.GetType().GetProperty(pColl.GetKey(i));
if (pi != null)
{
string[] pValues = pColl.GetValues(i);
for (int j = 0; j <= pValues.Length - 1; j++)
{
ConvertibleString cstring = new ConvertibleString(pValues[j].ToString ());
object value = Convert.ChangeType(cstring,pi.PropertyType);
pi.SetValue(m, value, null);
}
}
}
}
三、实现数据类型自动转换类型接口 ConvertibleString
using System;
using System.Collections.Generic;
using System.Text;
namespace BodyKnow.COMP
{
class ConvertibleString:IConvertible
{
string x;
public ConvertibleString(string value)
{
this.x = value;
}
public TypeCode GetTypeCode()
{
return TypeCode.Object;
}
bool IConvertible.ToBoolean(IFormatProvider provider)
{
if ((x != "") )
return true;
else
return false;
}
double GetDoubleValue()
{
return 0;
}
byte IConvertible.ToByte(IFormatProvider provider)
{
return Convert.ToByte(GetDoubleValue());
}
char IConvertible.ToChar(IFormatProvider provider)
{
return Convert.ToChar(GetDoubleValue());
}
DateTime IConvertible.ToDateTime(IFormatProvider provider)
{
return Convert.ToDateTime(x);
}
decimal IConvertible.ToDecimal(IFormatProvider provider)
{
return Convert.ToDecimal(GetDoubleValue());
}
double IConvertible.ToDouble(IFormatProvider provider)
{
return GetDoubleValue();
}
short IConvertible.ToInt16(IFormatProvider provider)
{
return Convert.ToInt16(GetDoubleValue());
}
int IConvertible.ToInt32(IFormatProvider provider)
{
return Convert.ToInt32(GetDoubleValue());
}
long IConvertible.ToInt64(IFormatProvider provider)
{
return Convert.ToInt64(GetDoubleValue());
}
sbyte IConvertible.ToSByte(IFormatProvider provider)
{
return Convert.ToSByte(GetDoubleValue());
}
float IConvertible.ToSingle(IFormatProvider provider)
{
return Convert.ToSingle(GetDoubleValue());
}
string IConvertible.ToString(IFormatProvider provider)
{
return x.ToString();
}
object IConvertible.ToType(Type conversionType, IFormatProvider provider)
{
return Convert.ChangeType(GetDoubleValue(), conversionType);
}
ushort IConvertible.ToUInt16(IFormatProvider provider)
{
return Convert.ToUInt16(GetDoubleValue());
}
uint IConvertible.ToUInt32(IFormatProvider provider)
{
return Convert.ToUInt32(GetDoubleValue());
}
ulong IConvertible.ToUInt64(IFormatProvider provider)
{
return Convert.ToUInt64(GetDoubleValue());
}
}
}
转载于:https://www.cnblogs.com/myaspx/archive/2010/04/08/1707385.html
model 和WEB前台页面提交完美自动填充相关推荐
- 方案报价页面前台页面根据情况自动创建li标签————记录备份
1. 前台JSP页面: <%@ page contentType="text/html; charset=UTF-8" %> <%@ taglib prefix= ...
- web 前台页面内弹出框(一)
本文已经不推荐在使用了,有更加优秀的 ,详情参考layui弹出层 前端当前页面编辑一些数据时,往往会用到弹出窗口,但每个页面单独修改有显得比较麻烦,因此,可以建立一个公用的方法,去掉用就 ...
- AJAX设置光标离开自动提交,Ajax自动提交和刷新页面
所以,我是新来的ajax,我试图使用ajax和jquery提交表单,我想我有服务器端逻辑都想通了,因为当我加载页面它会自动提交并且页面刷新速度非常快.空白表单将进入数据库,但其中有很多内容,因为页面会 ...
- 前台页面与后台管理系统自动生成工具
前台页面与后台管理系统自动生成工具:基于SpringBoot + Thymeleaf + Mybatis + 数据库 http://www.autosoftline.cn
- mvc 怎么把后台拼接好的div写到前台_MVC 从后台页面 取前台页面传递过来的值的几种取法...
<1>前台页面 Index视图 注意:用户名表单的name值为txtName 密码表单的name值为txtPassword Test 用户名 密 码 <2>后台页面,Home控 ...
- 实战SSM_O2O商铺_12【商铺注册】View层之前台页面
文章目录 概述 前端框架选择 页面目录结构 搭建商铺注册页面 JS部分 shopoperation.js common.js 乱码问题 将页面迁到WEB-INF目录下 Controller层的编写 访 ...
- 如何自动填充网页表单_iCab for Mac(web网页浏览器)
iCab for Mac是一款小巧实用的web网页浏览器,支持HTML4,图像过滤,cookie过滤,书签,java和javascript支持,搜索模式,从资源管理器导入Web档案,下载管理器以及许多 ...
- 使用Cross-Page Postback(跨页面提交)在页面间传递数据
页面间传递数据的几种方法 在页面间传递数据时,我们有以下几种选择: 1.Query String 一个很常见的方法,Query String是URL中问号之后的那一部分.其优点在于它是轻量级的,不会给 ...
- Springmvc+mybatis配置前台页面传递JSON串给后台接收。
前台页面js方法: $(document).ready(function(){ var saveDataAry=[]; var data1={"id":5,"name&q ...
最新文章
- Dora.Interception,为.NET Core度身打造的AOP框架 [1]:更加简练的编程体验
- 【转】sql server开启全文索引方法
- JS DATE对象详解
- java 高级泛型_Java 泛型高级
- 数据库实操——pandas写入数据库数据
- python读取大文件性能_强悍的Python读取大文件的解决方案
- 计算机辅助设计的发展及应用,计算机辅助设计的发展与应用
- VSCode自定义代码片段8——声明函数
- 荣耀Magic4 Pro延迟上市:全新一代LTPO超级四曲面屏加持
- libvirt 用c语言编译,基于C语言libvirt API简单小程序
- Eclipse 项目导入 Android Studio 导致的乱码问题解决
- oracle中分析函数range值范围,Oracle实战4(分析函数)
- 地区三级联动数据库(中国行政区划分数据库)【2018年1月】
- 蓝桥杯——六面体染色
- mininet和ryu简单实现自定义topo
- 奇葩副业:下班遛狗撸猫,月入10000 !
- 移动端地图开发技术分享交流会PPT
- Linux中的setenv与export
- Java DOM4J解析String类型XML,Document对象转String
- speedoffice(PPT)插入的图片如何裁剪呢?