📜  aspx 从 url 接收变量 - C# (1)

📅  最后修改于: 2023-12-03 14:39:23.065000             🧑  作者: Mango

使用 ASP.NET 的 WebForms 接收 URL 参数

如果您使用的是 ASP.NET 中的 WebForms 技术,那么在从 URL 中接收参数时,可以使用 ASPX 页面的 Request.QueryString 属性。

Request.QueryString 属性是一个键/值集合,其中键是参数的名称,值是其对应的值。以下是使用 Request.QueryString 属性从 URL 中获取参数的示例:

// 假设 URL 为 http://example.com/default.aspx?id=123&name=john
string id = Request.QueryString["id"]; // id = "123"
string name = Request.QueryString["name"]; // name = "john"

可以看到,我们可以通过在键名后面放置“[]”来访问查询字符串参数。请注意,这不是 C# 中的数组表示法,而是 ASP.NET 的语法。

如果一个参数在 URL 中出现了多次,那么通过 Request.QueryString 得到的值将是它们中的最后一个。因此,如果您需要访问所有参数值,您可能需要使用 Request.QueryString.GetValues() 方法。

// 假设 URL 为 http://example.com/default.aspx?id=123&name=john&id=456
string[] ids = Request.QueryString.GetValues("id"); // ids 包含 "123" 和 "456"

使用 ASP.NET MVC 接收 URL 参数

如果您使用的是 ASP.NET MVC 技术,那么可以在控制器的动作方法参数上使用 FromQuery 特性来注释接收的参数。

public IActionResult Index([FromQuery] string id, [FromQuery] string name)
{
    // 在这里使用 id 和 name 参数值
    // ...
}

如果您同时需要访问查询字符串中出现多次的参数值,可以将参数声明为 IEnumerable<string> 类型。

public IActionResult Index([FromQuery] IEnumerable<string> id, [FromQuery] string name)
{
    // 在这里使用 id 和 name 参数值
    // ...
}

请注意,在 MVC 中,您可以使用多种方式来注释控制器动作方法参数以从 URL 中接收参数。例如,您可以使用 FromUriFromBodyFromHeaderFromRoute 等特性来根据参数的来源进行注释。更多信息,请参阅 Microsoft 文档。