在查询字符串中使用/

时间:2011-01-14 16:53:10

标签: asp.net

我正在尝试在ASP.NET中使用查询字符串。我需要以下格式

http://localhost/website/1/?callback=?

这里1表示配置文件的ID。这意味着来自id = 1的一些信息将通过字符串

获取

如果这是website/2/?callback=?,则id为2.我的问题是如何将此/id/用作查询字符串,以便可以用来获取配置文件ID。这是我首选使用/id/格式,否则我可以考虑使用两个?'s来获取

如果id = 1,我想从此页面上的DB中获取ID = 1的详细信息。 http://localhost/website/1/?callback=?

2 个答案:

答案 0 :(得分:0)

在您的情况下,ID位于PATH中,而不是查询字符串中。您可以通过ASPX页面中的Request.Path访问路径。从那里你需要做一些字符串解析来获取你期望ID的路径部分。

在你的情况下,我可能会使用像int.Parse(Request.Path.Split(new char[] {'/'}, StringSplitOptions.RemoveEmptyEntries)[1])这样的东西,但请注意,为了简洁起见,我已经使这条线变得非常密集。对于初学者,您应该使用int.TryParse()而不是int.Parse()。此代码假定ID始终位于URL中的相同位置。例如,它适用于“/ website / 2 /”和“/ user / 2 /”,但不适用于“/ website / somethingelse / 2 /”。

答案 1 :(得分:0)

UriTemplate可能是这种解析的不错选择。更不用说,可能会更清楚明确地说明发生了什么。

退房:http://msdn.microsoft.com/en-us/library/system.uritemplate(v=VS.90).aspx