如何将参数添加到页面 ASP.net
本文关键字:ASP net 添加 参数 | 更新日期: 2023-09-27 18:34:28
我有一个数据库,其中包含我网站用户的一些记录,例如姓名,电子邮件,地址等。我使用 ASP.net(C#(创建了一个页面,它可以以排列的方式显示用户的信息。我想在任何人单击列表中的用户名时显示包含信息的页面。如何在页面中添加参数?这样我就可以使用列表中链接的名称或带有用户名的 ID 从数据库中获取数据。
我正在尝试做的是这样的:
example.com/userpage.aspx/XYZ
可以使用查询字符串参数:
example.com/userpage.aspx?id=XYZ
使用 Request 对象上的 QueryString 集合访问服务器上的 id:
string id = Request.QueryString["id"];
我认为您会希望使用 ASP.NET 路由引擎获取 URL 的一部分并将其路由到参数。
您可以将路线设置为 example.com/page.aspx?id=xyz 等于 example.com/page/xyz
如果您使用的是经典 ASP.NET,则必须按照 Xander 的建议将参数传递给查询字符串。 ASP.NET 正确解析参数? 并且您可以通过请求["参数名称"]访问它们。
但是,如果您想要像您发布的那样"用户友好的 URL",那么您需要一些机制将用户友好的 url 重写为系统 url。
-
首先,您可以使用IIS7 Url重写模块或任何3d方Url重写模块。通常它基于正则表达式,可以将 url/Users/XYZ 重写为/Users.aspx?name=XYZ
-
您也可以使用相对较新的技术 ASP.NET Rounting Engine。就像瑞安建议的那样。
-
如果您的 url 方案很复杂并且您无法用正则表达式,然后您可以编写自己的 HTTP 模块和执行一些自定义重写规则。
如果您的 User.aspx.cs 页面,您可以从 Request["Name"] 中读取查询参数,并使用它值来执行一些 SQL 查询(或任何您访问数据库的内容(
如果您使用的是 GridView,则只需将 OnRowCommand 事件附加到它,然后在单击链接时,您可以向名称传递要在页面上显示的用户 ID。