当前位置:

首页 > 编程开发 > .NET获取URL查询参数技巧

.NET获取URL查询参数技巧

使用HttpUtility.ParseQueryString可在任意.NET项目中解析URL查询参数,适用于控制台应用;2.ASP.NETCore中推荐使用HttpContext.Request.Query获取IQueryCollection,支持大小写不敏感和多值参数;3.无System.Web依赖时可手动拆分查询字符串并解码;4..NETCore推荐使用QueryHelpers.ParseQuery进行安全解析与构建,避免编码问题;根据项目类型选择合适方法,注意处理URL编码与多值情况。

本文目录

    使用 HttpUtility.ParseQueryString 可在任意 .NET 项目中解析 URL 查询参数,适用于控制台应用;2. ASP.NET Core 中推荐使用 HttpContext.Request.Query 获取 IQueryCollection,支持大小写不敏感和多值参数;3. 无 System.Web 依赖时可手动拆分查询字符串并解码;4. .NET Core 推荐使用 QueryHelpers.ParseQuery 进行安全解析与构建,避免编码问题;根据项目类型选择合适方法,注意处理 URL 编码与多值情况。

    .NET怎么获取一个URL的查询字符串参数_URL查询参数获取技巧

    在 .NET 中获取 URL 的查询字符串参数非常简单,主要依赖于 Uri 和 NameValueCollection 类型,尤其是在 ASP.NET 或 ASP.NET Core 环境中。下面介绍几种常用且实用的方法,适用于控制台程序、Web API、MVC 或 Blazor 等场景。

    1. 使用 HttpUtility.ParseQueryString(通用方法)

    这个方法适用于任何 .NET 项目,包括控制台应用。你可以通过 System.Web 命名空间中的 HttpUtility.ParseQueryString 来解析 URL 查询参数。

    示例代码:

    using System;
    using System.Collections.Specialized;
    using System.Web;
    
    string url = "https://example.com/search?keyword=dotnet&page=2&sort=asc";
    Uri uri = new Uri(url);
    NameValueCollection queryParameters = HttpUtility.ParseQueryString(uri.Query);
    
    string keyword = queryParameters["keyword"]; // 结果: "dotnet"
    string page = queryParameters["page"];       // 结果: "2"
    string sort = queryParameters["sort"];       // 结果: "asc"
    

    说明:uri.Query 返回的是以 ? 开头的查询部分(如 "?keyword=dotnet&page=2"),ParseQueryString 会自动去掉 ? 并解析成键值对。

    2. 在 ASP.NET Core 中使用 HttpContext.Request.Query

    在控制器或 Razor 页面中,可以直接访问请求上下文中的 Query 属性,它返回一个 IQueryCollection,使用起来更直观。

    示例代码:

    [HttpGet]
    public IActionResult Search()
    {
        string keyword = Request.Query["keyword"];
        string page = Request.Query["page"];
    
        // 多值参数支持(如 tags=a&tags=b)
        var tags = Request.Query["tags"]; // 返回字符串集合
    
        return Ok(new { keyword, page, tags });
    }
    

    注意:Request.Query 是大小写不敏感的,推荐使用标准命名方式传参。

    3. 手动解析(无依赖场景)

    如果你不能引用 System.Web(比如在 .NET Core 控制台程序中),可以手动拆分查询字符串。

    示例代码:

    string query = "keyword=dotnet&page=2&sort=asc";
    var parameters = new Dictionary();
    
    foreach (var part in query.Split('&', StringSplitOptions.RemoveEmptyEntries))
    {
        var keyValue = part.Split('=', 2);
        if (keyValue.Length == 2)
        {
            string key = Uri.UnescapeDataString(keyValue[0]);
            string value = Uri.UnescapeDataString(keyValue[1]);
            parameters[key] = value;
        }
    }
    

    这种方法虽然原始,但在轻量级工具类中很实用。

    4. 使用 QueryHelpers(推荐用于 .NET Core)

    .NET Core 提供了 Microsoft.AspNetCore.WebUtilities.QueryHelpers,适合构建和解析查询字符串。

    示例:解析查询字符串

    using Microsoft.AspNetCore.WebUtilities;
    
    var uri = new Uri("https://example.com?name=john&age=30");
    var query = QueryHelpers.ParseQuery(uri.Query);
    
    string name = query["name"]; // "john"
    int age = int.Parse(query["age"]); // 30
    

    优势:QueryHelpers 还支持安全地添加查询参数,避免编码问题。

    基本上就这些常用的技巧。根据你的项目类型选择合适的方式:Web 项目优先用 Request.Query 或 QueryHelpers,非 Web 项目可用 HttpUtility 或手动解析。关键是处理好 URL 编码和多值参数的情况。不复杂但容易忽略细节。

    本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系bd@zhengruan.com
    作者最新文章
    编程开发
    相关文章 更多
    关于加密解密 Base64 and URL and Hex Encoding and Decoding
    关于加密解密 Base64 and URL and Hex Encoding and Decoding

    今天想换一下Discuz论坛的风格,结果下载风格文件后,发现内容竟然是被Base64加密过的——这操作有点意外。好在有朋友推荐了一个解密页面,顺手把核心代码提取了出来,下面直接贴出来。 代码本身是一个完整的Base64、URL和Hex编解码工具,包含前端UI和Ja vaScript实现。关键部分都集

    详细指南:在Centos7中安装和使用wget
    详细指南:在Centos7中安装和使用wget

    在CentOS7系统上安装和使用wget的详细教程如下:步骤1:以root用户或具有sudo特权的用户身份登录到您的CentOS7系统。步骤2:安装wget在CentOS7系统中,可以使用以下命令安装wget:sudoyuminstallwget步骤3:使用wget下载文件要使用wget下载文件,请在终端中执行以下命令:wget[URL]将上述命令中的[URL]替换为您要下载的文件的URL地址。例如,如果要下载一个名为file.txt的文件,可以使用以下命令:wgetwget将从指定的URL下载文件,并将

    Java中如何使用URL函数进行URL操作
    Java中如何使用URL函数进行URL操作

    Java中的URL类是一个重要的工具,它允许我们进行常见的URL操作,如打开和读取网络资源,发送网络请求,等等。在本文中,我们将介绍如何使用Java中的URL类进行URL操作。URL类是Java中的一个标准类,用于处理URL。URL表示统一资源定位符,它是指向互联网上资源的字符串。URL类提供了许多用于对URL进行操作的方法。下面是一些常见的URL操作:1.

    URL中文参数乱码问题的PHP解决方案
    URL中文参数乱码问题的PHP解决方案

    URL参数乱码问题一直是开发者面临的一个棘手问题,尤其是在处理中文参数时更为显著。在PHP编程中,如果URL中的中文参数出现乱码,不仅会影响用户体验,还可能导致程序出现异常行为。本文将针对URL中文参数乱码问题提出解决方案,并给出具体的PHP代码示例。问题分析在HTTP请求中,URL中的参数是通过GET方法传递的。当参数中包含中文字符时,浏览器会将中文字符进

    如何使用PHP中的parse_url函数解析URL
    如何使用PHP中的parse_url函数解析URL

    URL是Web开发中一项基本的概念,它是指统一资源定位符,是用于定位Web上资源的地址。在PHP中,有一个内置函数parse_url可以用来解析URL,本文就来介绍如何使用这个函数。一、parse_url函数的基本概念PHP中的parse_url函数是用来解析一个URL并返回该URL的各个组成部分的函数。该函数支持的URL类型包括:http、ftp、goph

    优化PHP URL地址路径后缀的方法
    优化PHP URL地址路径后缀的方法

    PHP实现URL地址路径后缀清理技巧在Web开发过程中,URL地址路径后缀的清理是一个非常重要的步骤。清理URL地址路径后缀可以提高网站的SEO优化,提升用户体验,同时也有利于网站安全性。在PHP开发中,如何实现URL地址路径后缀的清理呢?下面将介绍一些实用的技巧和具体的代码示例。一、基本概念在URL中,地址路径后缀通常指的是URL中的文件类型或者标识符,例

    简化DZ首页链接URL:删除index.php
    简化DZ首页链接URL:删除index.php

    DZ首页URL精简化:去掉index.php,需要具体代码示例在使用Discuz!论坛系统时,我们常常需要对URL进行优化,其中去掉index.php是一个常见的操作。通过去掉index.php,可以让URL更加简洁美观,同时也有利于搜索引擎优化。下面我们来介绍如何实现DZ首页URL的精简化,去掉index.php部分的具体代码示例。首先,我们需要登录到Di

    解决NameResolutionError异常的方法
    解决NameResolutionError异常的方法

    报错的原因NameResolutionError(self.host,self,e)frome是由urllib3库中的异常类型,这个错误的原因是DNS解析失败,也就是说,试图解析的主机名或IP地址无法找到。这可能是由于输入的URL地址不正确,或者DNS服务器暂时不可用导致的。如何解决解决此错误的方法可能有以下几种:检查输入的URL地址是否正确,确保它是可访问的确保DNS服务器可用,您可以尝试在命令行中使用"ping"命令来测试DNS服务器是否可用尝试使用IP地址而不是主机名来访问网站如果是在代理环境下,检

    优化Scrapy爬虫:提高效率,减少重复URL的抓取
    优化Scrapy爬虫:提高效率,减少重复URL的抓取

    Scrapy是一个功能强大的Python爬虫框架,可以用于从互联网上获取大量的数据。但是,在进行Scrapy开发时,经常会遇到重复URL的爬取问题,这会浪费大量的时间和资源,影响效率。本文将介绍一些Scrapy优化技巧,以减少重复URL的爬取,提高Scrapy爬虫的效率。一、使用start_urls和allowed_domains属性在Scrapy爬虫中,可

    如何使用Python正则表达式进行URL提取
    如何使用Python正则表达式进行URL提取

    在现代的网络环境中,聚合数据的需求日益增长。在这种情况下,提取URL链接显然是一项非常重要的任务。使用Python正则表达式进行URL提取是一种快速、灵活、可靠的方法。在本文中,我们将为您介绍如何使用Python正则表达式进行URL提取。1.了解Python正则表达式的基本语法在使用Python正则表达式进行URL提取之前,您需要了解正则表达式的基本语法。P

    查看更多
    精品专题 更多
    装机必备
    装机必备

    正软商城装机必备专区,精选办公、浏览器、安全防护、影音播放、压缩解压、设计创作和系统工具等电脑常用正版软件,帮助用户快速完成新电脑软件配置。

    Windows
    Windows

    正软商城Windows软件专区,汇集适用于Windows电脑的办公、设计、安全防护、影音播放、开发工具和系统优化软件,提供软件介绍、系统要求、正版授权及购买下载服务。

    PDF教程
    PDF教程

    正软商城PDF教程频道提供PDF编辑、转换、合并、拆分、压缩及格式处理方法,同时介绍常用PDF软件和工具的使用技巧。

    Mac软件 更多
    讯飞智作 网页版
    讯飞智作 网页版
    Windows/ macOS/ Linux

    讯飞智作是一款基于语音合成技术、虚拟人驱动技术与数字人形象声音构建能力的 AI 数字人音视频创作平台。

    火山引擎 网页版
    火山引擎 网页版
    Windows/ macOS/ Linux

    火山引擎是字节跳动旗下企业级云与AI服务平台。聚焦大模型核心能力,依托字节自研豆包多模态大模型,凭借火山方舟一站式平台,提供模型精调、推理部署、智能应用搭建等全链路服务,结合高性能AI算力,助力各行业快速落地大模型数字化与智能化应用。

    Aperty macOS版
    Aperty macOS版
    macOS

    Aperty 是 Skylum 推出的 AI 人像修图软件,支持自然肤质修饰、瑕疵处理、面部与身体调整、预设及批量同步。

    WINDOWS 更多
    讯飞智作 网页版
    讯飞智作 网页版
    Windows/ macOS/ Linux

    讯飞智作是一款基于语音合成技术、虚拟人驱动技术与数字人形象声音构建能力的 AI 数字人音视频创作平台。

    火山引擎 网页版
    火山引擎 网页版
    Windows/ macOS/ Linux

    火山引擎是字节跳动旗下企业级云与AI服务平台。聚焦大模型核心能力,依托字节自研豆包多模态大模型,凭借火山方舟一站式平台,提供模型精调、推理部署、智能应用搭建等全链路服务,结合高性能AI算力,助力各行业快速落地大模型数字化与智能化应用。

    PixTV 网页版
    PixTV 网页版
    Windows

    PixTV 是一款在浏览器中使用的 AI 视觉内容创作平台,提供图片、视频、音频、文字生成、AI 分镜、局部重绘、提示词反推和无限画布等工具,适合短剧、漫剧、广告及社交媒体内容制作。