以username为例,假如都以这个单词命名变量、参数等,在来回传值过程中很容易混乱,当然大可不必非要单调使用这一个单词,但是它也有好处,比如说在传值的时候不用考虑我需要传变量的到底被我定义成什么名字了,然后在浩繁的代码世界中找寻它的定义地点。总之还是要弄清楚其中的原理,否则早晚要出错。这里就以ASP.net中NVelocity实现过程登录界面中“同一个名字不同含义”进行说明。
注意:代码中多次出现username、password,其内涵在不同环境下也不同。 1)htm中的:用户名: name='username'指的是将用户在浏览器端输入的值传给服务器的username接收“参数”。 (PS:这个参数可以随意改,只要服务器端和浏览器端保持一致即可。) value='$username'这是在NVelocity模板引擎中定义的一个占位符,服务器将处理结果以key-value的形式替换它,此处的$username就是Key。 (PS:这个也可随意修改,只是在替换的时候注意键值对的配对正确即可) 2)ashx中的:string username = context.Request["username"]; vltContext.Put("username", username); ["username"]即是服务器端的接收“参数”; string username是在服务器端定义的一个C#变量,用于服务器端数据的操作。 Put("username", username)前者是键值对中的key,对应于$username;后者是value对应于C#变量string username。 3)整个数据的传输流程是:data(通过name属性)→["username"]→string username→服务器端处理→Put("username",)通过键值对→$username→返回到浏览器端画出来 当然在此之前需要将原始界面画出来,直接在服务器端的“服务器处理处”通过键值对处将其赋空。
说明:htm中存放的是NVelocity的模板。