积极答复者
请大侠帮我看看这代码,是网页代码,具体意思是要带什么参数呢?

问题
-
请大侠帮我看看这代码,是网页代码,具体意思是要带什么参数呢?
================================================
<%@ Page language="c#" %>
<%@ Import namespace="System.Xml" %>
<%
Page.Response.Cache.SetExpires(DateTime.Now.AddHours(-1));
string t=getParam("t");
string a=getParam("a");
string p=getParam("p");
if (t=="" || a=="" || p=="")
{
Response.Write("<?xml version=\"1.0\"?>\n<d>ERROR</d>");
}
else
{
int pos = Convert.ToInt32(p);
XmlDocument doc = new XmlDocument();
string file = Server.MapPath("../advert/xmldata/stat.xml");
doc.Load(file);
XmlNode dtnode = doc.SelectSingleNode("/_8bo8/d");
DateTime dt = Convert.ToDateTime(dtnode.InnerText);
if ( DateTime.Now.AddHours(-24)>dt )
{
string tmp = "<?xml version=\"1.0\" encoding=\"gb2312\"?>\n";
tmp += "<_8bo8><d>" + DateTime.Now.ToString("yyyy-MM-dd 00:00:00") + "</d>\n";
tmp += "<f><left></left><right></right><top></top><middle></middle><bottom></bottom><fleft></fleft><fright></fright></f>\n";
tmp += "<b><left></left><right></right><top></top><middle></middle><bottom></bottom><fleft></fleft><fright></fright></b>\n";
tmp += "</_8bo8>";
doc.LoadXml(tmp);
}
XmlNode node = doc.SelectSingleNode("/_8bo8/" + t + "/" + a);
string data=node.InnerText;
data = Record(data, pos);
node.InnerText = data;
doc.Save(file);
Response.Write("<?xml version=\"1.0\"?>\n<d>OK</d>");
}
%>
<script language="c#" runat="server">
string Record(string data, int pos)
{
if (data=="") data = "0";
string[] arr = data.Split(',');
if (pos<arr.Length)
{
arr[pos] = (Convert.ToInt32(arr[pos]) + 1).ToString();
data = arr[0];
for(int i=1; i<arr.Length; i++)
{
data += "," + arr[i];
}
}
else
{
string[] arr2 = new string[pos+1];
for(int i=0; i<arr.Length; i++)
{
arr2[i] = arr[i];
}
for(int i=arr.Length; i<arr2.Length; i++)
{
arr2[i]="0";
}
arr2[pos] = (Convert.ToInt32(arr2[pos]) + 1).ToString();
data = arr2[0];
for(int i=1; i<arr2.Length; i++)
{
data += "," + arr2[i];
}
}
return data;
}
string getParam(string key)
{
string tmp="";
if (Request[key]!=null)
{
tmp = Request[key].ToString();
}
return tmp;
}
</script>
答案
-
请具体列出“getParam”的方法实现。
我认为你类似Request.QueryString("a");因此解决方案很可能是——
请保证当前页面的地址后面带有t或者a或者p,比如(假设你的页面是a.aspx)——
a.aspx?t=a&a=b&p=b
QQ我:
下载MSDN桌面工具(Vista,Win7)
我的博客园
慈善点击,点击此处- 已标记为答案 Leo Liu - MSFTModerator 2011年12月5日 3:39
-
请具体列出“getParam”的方法实现。
楼主应该有提供了
string getParam(string key)
{
string tmp="";
if (Request[key]!=null)
{ tmp = Request[key].ToString(); }
return tmp;
}
因为用Request[key]来取值,所以有可能要带QueryString或表单变量
QueryString的話:请参考二楼写法
表单变量:
<input type="hidden" name="t" value="a" />
<input type="hidden" name="a" value="b" />
<input type="hidden" name="p" value="b" />
Shadowと愉快なコード達- 已标记为答案 Leo Liu - MSFTModerator 2011年12月5日 3:39
-
Hi asp菜鸟,
这里样例代码中使用的是Request[string paraName]方式来获取其他页面传过来的参数, 则有两种可能:
1. Get方式传过来的参数, 在跳转到新页面时这些参数直接附加在新页面url之后, 或者get方式提交的form表单在提交时会自动将form中的数据集以相同的形式附加在url之后, 形式如同Wei_Dong所述.
另外一种获取这种参数的写法是Request.QueryString[string paraName].
2. Post方式传过来的参数, 这些参数是通过原页面表单post方式提交传过来的, 一个例子如Shadow所述, 注意这些input field须都在form中.
另外一种获取这种参数的写法是Request.Form[string paraName].
总之这两种方式传递的参数都可以用Request[string paraName]来获取, 注意是方括号, 圆括号是VB.NET中的写法.
祝你快乐每一天,
Leo Liu [MSFT]
MSDN Community Support | Feedback to us
- 已标记为答案 Leo Liu - MSFTModerator 2011年12月5日 3:40
全部回复
-
请具体列出“getParam”的方法实现。
我认为你类似Request.QueryString("a");因此解决方案很可能是——
请保证当前页面的地址后面带有t或者a或者p,比如(假设你的页面是a.aspx)——
a.aspx?t=a&a=b&p=b
QQ我:
下载MSDN桌面工具(Vista,Win7)
我的博客园
慈善点击,点击此处- 已标记为答案 Leo Liu - MSFTModerator 2011年12月5日 3:39
-
请具体列出“getParam”的方法实现。
楼主应该有提供了
string getParam(string key)
{
string tmp="";
if (Request[key]!=null)
{ tmp = Request[key].ToString(); }
return tmp;
}
因为用Request[key]来取值,所以有可能要带QueryString或表单变量
QueryString的話:请参考二楼写法
表单变量:
<input type="hidden" name="t" value="a" />
<input type="hidden" name="a" value="b" />
<input type="hidden" name="p" value="b" />
Shadowと愉快なコード達- 已标记为答案 Leo Liu - MSFTModerator 2011年12月5日 3:39
-
Hi asp菜鸟,
这里样例代码中使用的是Request[string paraName]方式来获取其他页面传过来的参数, 则有两种可能:
1. Get方式传过来的参数, 在跳转到新页面时这些参数直接附加在新页面url之后, 或者get方式提交的form表单在提交时会自动将form中的数据集以相同的形式附加在url之后, 形式如同Wei_Dong所述.
另外一种获取这种参数的写法是Request.QueryString[string paraName].
2. Post方式传过来的参数, 这些参数是通过原页面表单post方式提交传过来的, 一个例子如Shadow所述, 注意这些input field须都在form中.
另外一种获取这种参数的写法是Request.Form[string paraName].
总之这两种方式传递的参数都可以用Request[string paraName]来获取, 注意是方括号, 圆括号是VB.NET中的写法.
祝你快乐每一天,
Leo Liu [MSFT]
MSDN Community Support | Feedback to us
- 已标记为答案 Leo Liu - MSFTModerator 2011年12月5日 3:40