0

我有一个包含我网站用户的一些记录的数据库,例如姓名、电子邮件、地址等。我使用 ASP.net (C#) 创建了一个页面,该页面可以有序地显示用户的信息。当有人从列表中单击用户名时,我想显示该页面的信息。如何在页面中添加参数?这样我就可以使用列表中与用户名链接的名称或 ID 从数据库中获取数据。

我想做的是这样的:

example.com/userpage.aspx/XYZ
4

4 回答 4

3

您可以使用查询字符串参数:

example.com/userpage.aspx?id=XYZ

使用 Request 对象上的 QueryString 集合访问服务器上的 id:

string id = Request.QueryString["id"];
于 2012-05-16T18:56:52.793 回答
2

我认为您可能希望使用ASP.NET 路由引擎来获取 URL 的一部分并将其路由到参数。

您可以将路线设置为 example.com/page.aspx?id=xyz 等于 example.com/page/xyz

于 2012-05-16T18:57:11.983 回答
1

如果您使用的是经典的 ASP.NET,那么您必须按照 Xander 的建议将参数传递给查询字符串。ASP.NET 在 ? 之后正确解析参数?您可以通过 Request["parameterName"] 访问它们。

但是,如果您想要像您发布的“用户友好 url”,那么您需要一些机制将用户友好 url 重写为系统 url。

  • 首先,您可以使用 IIS7 Url Rewrite 模块或任何 3d 方 Url Rewrite 模块。通常是基于正则表达式,可以将url /Users/XYZ 改写为 /Users.aspx?name=XYZ

  • 您也可以像 Ryan 建议的那样使用相对较新的技术 ASP.NET Routing Engine。

  • 如果您的 url 方案很复杂,无法用正则表达式描述,那么您可以编写自己的 HTTP 模块并执行一些自定义的重写规则。

如果您的 Users.aspx.cs 页面您可以从 Request["Name"] 中读取查询参数,并使用它的值来执行一些 SQL 查询(或您想要访问数据库的任何内容)

于 2012-05-16T19:13:05.873 回答
0

如果您使用的是 GridView,您只需将 OnRowCommand 事件附加到它,然后单击链接即可将名称传递给要在页面上显示的 UserID。

于 2012-05-17T10:09:50.410 回答