正在请求C#中的URL参数
本文关键字:URL 参数 中的 请求 | 更新日期: 2023-09-27 18:19:44
我从URL请求参数的方式是
如果URL为-http://www.domain.ext/default.aspx?id=123&name=abc
在上面的例子中,我们可以从页面default.aspx
请求两个参数,即id
和name
作为string myid = Request["id"];
和string myname = Request["name"];
但在Facebook个人资料的URL中,它显示了类似的内容。
http://www.facebook.com/john.deo
或http://www.facebook.com/madcoder
其中不会有任何页面名称,并用语法定义名称。如何从C#中的URL请求参数(john.deo或madcoder)?
这可以通过向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"]
集合中。