正在请求C#中的URL参数

本文关键字:URL 参数 中的 请求 | 更新日期: 2023-09-27 18:19:44

我从URL请求参数的方式是

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

在上面的例子中,我们可以从页面default.aspx请求两个参数,即idname作为string myid = Request["id"];string myname = Request["name"];

但在Facebook个人资料的URL中,它显示了类似的内容。

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

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

正在请求C#中的URL参数

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

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

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

这些不是URL参数,它们用于标识资源
您可以使用regex,您唯一的目标是在给定的url 中获得"john.deo"

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

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

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

然后在您的请求格式中指定诸如"{name}"之类的参数,然后在"routeValueDefaults"字典中默认name参数,并在"routeConttrains"字典中将其约束。约束可以由一个重查询表达式指定,因此如果您希望名称仅为所有字符,则可以使用类似"''w+"的内容。

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