博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
自定义参数-表单URL参数处理
阅读量:5298 次
发布时间:2019-06-14

本文共 3156 字,大约阅读时间需要 10 分钟。

今天就描述下自己在自定义表单中的跳过程中URL参数传递的处理。

  平常的开发中,我们进行URL传参时,肯定都会定义一个有意义的参数名,让接收页面去Request获取,这没有问题,但如果是在自定义表单中,参数的名称上一般都会比较的固定,系统识别的名称无非就那约定好的一些,所以不能再通过更多的&符号来间隔的传递参数,那该如何处理呢?我们可以约定一定的格式,将参数进行数组化,通过固定的参数名传递,样子如下:PPI_ID|PPI20100304001,PSF_ID|PSF20101210002。

  这样的参数名即简练又易书写,而且系统可以很好的识别,很明显的看出参数是通过","将各个参数进行分隔,再通过"|"将参数名与参数值分隔,至于在URL中的名称就好起名了,就叫它Param了。

  在接收页的处理方面,在这里是通过独立的参数类来处理的,因为系统中的表单参数都是通过这类方式传递,所以用到的地方肯定非常多,将参数功能独立化,也是挺方便的,统一的方法去解析表单参数,更好的维护它们。直接贴下代码吧:

///       /// 参数分隔辅助类,样式如:PPI_ID|PPI,PSF_ID|PSF,      /// 提供对参数的分解及返回键值列表信息      ///       [Serializable]      public class SplitParam      {          ///           /// 参数字符串         ///          ///          public SplitParam(string param)         {             this.Param = param;         }          public override string ToString()         {             return Param;         }          private string _param = string.Empty;         ///          /// 参数字符串         ///          public string Param         {             get { return _param; }             private set             {                 if (!string.IsNullOrEmpty(value))                 {                     _param = value;                 }             }         }          ///          /// 保存解析过的参数列表         ///          private Dictionary
_paramList = null; ///
/// 获取解析后的参数列表信息,可用于参数替换等 /// ///
public Dictionary
GetParamList() { if (_paramList == null) { _paramList = new Dictionary
(); string[] listA = _param.Split('|'); if (listA == null || listA.Length == 0) { return _paramList; } string[] listB; foreach (string item in listA) { if (!string.IsNullOrEmpty(item)) { listB = item.Split(','); if (listB != null & listB.Length > 1) { _paramList.Add(listB[0], listB[1]); } } } } return _paramList; } ///
/// 根据键值获取获取值 /// ///
///
public string GetValueByKey(string key) { GetParamList(); if (_paramList != null && _paramList.ContainsKey(key)) { return _paramList[key]; } return ""; }

  

string str = "PPI_ID|PPI20100304001,PSF_ID|PSF20101210002";

Response.Write(new SplitParam(str).GetValueByKey("PPI_ID"));//结果:PPI20100304001

简介

在C#中,Dictionary提供快速的基于兼职的元素查找。当你有很多元素的时候可以使用它。它包含在System.Collections.Generic名空间中。

在使用前,你必须声明它的键类型和值类型。

详细说明

必须包含名空间System.Collection.Generic 
Dictionary里面的每一个元素都是一个键值对(由二个元素组成:键和值) 
键必须是唯一的,而值不需要唯一的 
键和值都可以是任何类型(比如:string, int, 自定义类型,等等) 
通过一个键读取一个值的时间是接近O(1) 
键值对之间的偏序可以不定义 
创建和初始化一个Dictionary对象
Dictionary myDictionary = new Dictionary();
引用:

转载于:https://www.cnblogs.com/sntetwt/archive/2012/10/29/2744730.html

你可能感兴趣的文章
16下学期进度条2
查看>>
Could not resolve view with name '***' in servlet with name 'dispatcher'
查看>>
Chapter 3 Phenomenon——12
查看>>
C语言中求最大最小值的库函数
查看>>
和小哥哥一起刷洛谷(1)
查看>>
jquery对id中含有特殊字符的转义处理
查看>>
遇麻烦,Win7+Ubuntu12.10+Archlinux12.10 +grub
查看>>
SqlBulkCopy大批量导入数据
查看>>
pandas 修改指定列中所有内容
查看>>
字符串压缩
查看>>
「 Luogu P2285 」打鼹鼠
查看>>
lua语言入门之Sublime Text设置lua的Build System
查看>>
vue.js基础
查看>>
电脑的自带图标的显示
查看>>
[转载] redis 的两种持久化方式及原理
查看>>
关于在Idea 创建Maven项目时,无法在source文件下创建servlet文件问题解决!
查看>>
对 HTTP 304 的理解
查看>>
深入理解css中的margin属性
查看>>
C++ 删除字符串的两种实现方式
查看>>
电容选型
查看>>