在C#中请求URL参数

时间:2012-01-09 10:25:49

标签: c# facebook request

我用来从URL请求参数的方式是

如果网址为 - http://www.domain.ext/default.aspx?id=123&name=abc

在上面的示例中,我们可以从id页面namedefault.aspx

请求两个参数,即string myid = Request["id"];string myname = Request["name"];

但在Facebook个人资料的网址中,它显示了此类内容。

http://www.facebook.com/john.deohttp://www.facebook.com/madcoder

不存在任何页面名称并使用语法定义名称。如何在C#中从URL请求参数(john.deo或madcoder)?

3 个答案:

答案 0 :(得分:3)

这可以通过向htaccess文件添加规则来实现。

RewriteRule ^([A-Za-z0-9_-]*)/$ index.php?name=$1

此规则意味着,如果您在浏览器http://www.mydomain.co.uk/john中输入内容,则可以通过请求“name”参数获取值“john”。

答案 1 :(得分:0)

这些不是URL参数,用于标识资源 你可以使用正则表达式,你唯一的目标就是在给定的URL中获得“john.deo”

答案 2 :(得分:0)

这完全取决于您的解决方案的复杂程度。但是,一种简单的方法是使用页面路由。

您可以在Global.asax -> Application_Start中注册一条路线,如下所示:

RouteTable.Routes.MapPageRoute("Route name", "requestformat", "physicalfile", checkPhysicalUrlAccess, routeValueDefaults, routeConstraints);

然后在您的请求格式中指定“{name}”之类的参数,然后在'editValueDefaults'字典中默认name参数,并在'rawContstrains'字典中对其进行约束。约束可以通过reqular表达式指定,因此如果您希望名称只是所有字符,您可以使用类似“\ w +”的内容。

然后,参数最终出现在物理页面的Page.RouteData["name"]集合中。