代码如下

一、请求页面代码

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前台页面提交完美自动填充相关推荐

  1. 方案报价页面前台页面根据情况自动创建li标签————记录备份

    1. 前台JSP页面: <%@ page contentType="text/html; charset=UTF-8" %> <%@ taglib prefix= ...

  2. web 前台页面内弹出框(一)

    本文已经不推荐在使用了,有更加优秀的 ,详情参考layui弹出层​​​​​​​ 前端当前页面编辑一些数据时,往往会用到弹出窗口,但每个页面单独修改有显得比较麻烦,因此,可以建立一个公用的方法,去掉用就 ...

  3. AJAX设置光标离开自动提交,Ajax自动提交和刷新页面

    所以,我是新来的ajax,我试图使用ajax和jquery提交表单,我想我有服务器端逻辑都想通了,因为当我加载页面它会自动提交并且页面刷新速度非常快.空白表单将进入数据库,但其中有很多内容,因为页面会 ...

  4. 前台页面与后台管理系统自动生成工具

    前台页面与后台管理系统自动生成工具:基于SpringBoot + Thymeleaf + Mybatis + 数据库 http://www.autosoftline.cn

  5. mvc 怎么把后台拼接好的div写到前台_MVC 从后台页面 取前台页面传递过来的值的几种取法...

    <1>前台页面 Index视图 注意:用户名表单的name值为txtName 密码表单的name值为txtPassword Test 用户名 密 码 <2>后台页面,Home控 ...

  6. 实战SSM_O2O商铺_12【商铺注册】View层之前台页面

    文章目录 概述 前端框架选择 页面目录结构 搭建商铺注册页面 JS部分 shopoperation.js common.js 乱码问题 将页面迁到WEB-INF目录下 Controller层的编写 访 ...

  7. 如何自动填充网页表单_iCab for Mac(web网页浏览器)

    iCab for Mac是一款小巧实用的web网页浏览器,支持HTML4,图像过滤,cookie过滤,书签,java和javascript支持,搜索模式,从资源管理器导入Web档案,下载管理器以及许多 ...

  8. 使用Cross-Page Postback(跨页面提交)在页面间传递数据

    页面间传递数据的几种方法 在页面间传递数据时,我们有以下几种选择: 1.Query String 一个很常见的方法,Query String是URL中问号之后的那一部分.其优点在于它是轻量级的,不会给 ...

  9. Springmvc+mybatis配置前台页面传递JSON串给后台接收。

    前台页面js方法: $(document).ready(function(){ var saveDataAry=[]; var data1={"id":5,"name&q ...

最新文章

  1. Dora.Interception,为.NET Core度身打造的AOP框架 [1]:更加简练的编程体验
  2. 【转】sql server开启全文索引方法
  3. JS DATE对象详解
  4. java 高级泛型_Java 泛型高级
  5. 数据库实操——pandas写入数据库数据
  6. python读取大文件性能_强悍的Python读取大文件的解决方案
  7. 计算机辅助设计的发展及应用,计算机辅助设计的发展与应用
  8. VSCode自定义代码片段8——声明函数
  9. 荣耀Magic4 Pro延迟上市:全新一代LTPO超级四曲面屏加持
  10. libvirt 用c语言编译,基于C语言libvirt API简单小程序
  11. Eclipse 项目导入 Android Studio 导致的乱码问题解决
  12. oracle中分析函数range值范围,Oracle实战4(分析函数)
  13. 地区三级联动数据库(中国行政区划分数据库)【2018年1月】
  14. 蓝桥杯——六面体染色
  15. mininet和ryu简单实现自定义topo
  16. 奇葩副业:下班遛狗撸猫,月入10000 !
  17. 移动端地图开发技术分享交流会PPT
  18. Linux中的setenv与export
  19. Java DOM4J解析String类型XML,Document对象转String
  20. speedoffice(PPT)插入的图片如何裁剪呢?

热门文章

  1. 在这里,看到未来——2013微软技术节印象
  2. try/catch 的解释与用法
  3. 苹果IOS开发者账号总结
  4. js二维数组定义和初始化的三种方法
  5. 通过Java批量导出带有图片的Excel文件数据
  6. 服务器安装docker和docker-compose,并开放2375端口
  7. UE战棋游戏的制作流程(使用GAS来制作技能系统)
  8. CE植物大战僵尸——阳光值基址寻找
  9. 全国计算机等级考试二级教程与资料
  10. 德国海曼HTPA 32x32d热成像传感器代替MLX90640之传感器数据读取和计算