更新 :2018-7-25

直接添加 query string.

var resetPasswordLink = QueryHelpers.AddQueryString($"{Request.Scheme}://{Request.Host.Value}{forgotPasswordData.resetPasswordUrl}", "token", token);

refer : https://benjii.me/2017/04/parse-modify-query-strings-asp-net-core/

build-in 的功能哦.

using Microsoft.AspNetCore.Http.Extensions;
using Microsoft.AspNetCore.WebUtilities; public IActionResult About()
{
string currentFullUrl = $"{Request.Scheme}://{Request.Host}{Request.Path}{Request.QueryString}";
var uri = new Uri(currentFullUrl);
var baseUri = uri.GetComponents(UriComponents.Scheme | UriComponents.Host | UriComponents.Port | UriComponents.Path, UriFormat.UriEscaped);
var query = QueryHelpers.ParseQuery(uri.Query);
var items = query.SelectMany(x => x.Value, (col, value) => new KeyValuePair<string, string>(col.Key, value)).ToList();
var pageItem = items.FirstOrDefault(i => i.Key == "page"); // 是可以有多个的哦.
if (pageItem.Key != null) // 判断是否有
{
int page = Convert.ToInt32(pageItem.Value);
}
items.RemoveAll(x => x.Key == "key");
items.RemoveAll(x => x.Key == "key" && x.Value == "value");
var qb = new QueryBuilder(items);
qb.Add("newKey", "newValue");
var newUrl = baseUri + qb.ToQueryString();
return View();
}

part 2

UriBuilder uriBuilder = new UriBuilder();
uriBuilder.Scheme = Request.Scheme;
uriBuilder.Host = Request.Host.Host;
if (Request.Host.Port.HasValue)
{
uriBuilder.Port = Request.Host.Port.Value;
}
uriBuilder.Path = forgotPasswordData.resetPasswordPath;
var queryBuilder = new QueryBuilder();
queryBuilder.Add("token", token);
uriBuilder.Query = queryBuilder.ToString();
var url = uriBuilder.ToString();

以上

Asp.net core 学习笔记 (操作 url and query params)的更多相关文章

  1. Asp.Net Core学习笔记:入门篇

    Asp.Net Core 学习 基于.Net Core 2.2版本的学习笔记. 常识 像Django那样自动检查代码更新,自动重载服务器(太方便了) dotnet watch run 托管设置 设置项 ...

  2. ASP.NET Core 学习笔记 第一篇 ASP.NET Core初探

    前言 因为工作原因博客断断续续更新,其实在很早以前就有想法做一套关于ASP.NET CORE整体学习度路线,整体来说国内的环境的.NET生态环境还是相对比较严峻的,但是干一行爱一行,还是希望更多人加入 ...

  3. Asp.net Core学习笔记

    之前记在github上的,现在搬运过来 变化还是很大的,感觉和Nodejs有点类似,比如中间件的使用 ,努力学习ing... 优点 不依赖IIS 开源和跨平台 中间件支持 性能优化 无所不在的依赖注入 ...

  4. ASP.NET Core 学习笔记 第四篇 ASP.NET Core 中的配置

    前言 说道配置文件,基本大多数软件为了扩展性.灵活性都会涉及到配置文件,比如之前常见的app.config和web.config.然后再说.NET Core,很多都发生了变化.总体的来说技术在进步,新 ...

  5. Asp.net core 学习笔记 ( Data protection )

    参考 : http://www.cnblogs.com/xishuai/p/aspnet-5-identity-part-one.html http://cnblogs.com/xishuai/p/a ...

  6. Asp.net core (学习笔记 路由和语言 route & language)

    https://docs.microsoft.com/en-us/aspnet/core/mvc/controllers/routing?view=aspnetcore-2.1 https://doc ...

  7. Asp.net core 学习笔记 (授权)

    更新 : 2018-11-24 记入一些思考 asp.net core + identity 的权限是这样的 user = 1 个登入账号 role = 1 个角色 (类似于公司里的一个职位) cla ...

  8. Asp.net core 学习笔记 ( identity server 4 JWT Part )

    更新 : id4 使用这个 DbContext 哦 dotnet ef migrations add identity-server-init --context PersistedGrantDbCo ...

  9. Asp.net core 学习笔记 ( IIS, static file 性能优化 )

    更新 : 2019-02-06 最后还是把 rewrite 给替换掉了. 所以 rewrite url 也不依赖 iis 了咯. refer : https://docs.microsoft.com/ ...

随机推荐

  1. k8s debug

    https://feisky.gitbooks.io/kubernetes/components/api-aggregation.html API convention Kubernetes deep ...

  2. shell实现自动部署两台tomcat项目+备份

    就做个记录吧, 其实也没啥好说的. 主机 #!/bin/bash TODAY=$(date -d 'today' +%Y-%m-%d-%S) MIP="192.168.180.24" ...

  3. 支持图片上传预览的 uploadPreview.js 插件

    原文链接:http://www.lanrenzhijia.com/others/3148.html

  4. Codeforces 868C Qualification Rounds - 位运算

    Snark and Philip are preparing the problemset for the upcoming pre-qualification round for semi-quar ...

  5. [内核驱动] DOS路径转化为NT路径

    转载:http://blog.csdn.net/qq_33504040/article/details/78468278 最近在做一个文件过滤驱动程序,禁止访问指定目录或文件.想要从R3给R0发命令和 ...

  6. python&django 常见问题及解决方法

    0.python-dev安装(ubuntu) apt-get install  python-dev 1.Open(filename,mode) 报错实例: f = open('d:\Users\16 ...

  7. rocketmq总结(消息的顺序、重复、事务、消费模式)

    rocketmq总结(消息的顺序.重复.事务.消费模式) 参考: http://www.cnblogs.com/wxd0108/p/6038543.html https://www.cnblogs.c ...

  8. size_t和unsigned int区别

    size_t和unsigned int有所不同,size_t的取值range是目标平台下最大可能的数组尺寸,一些平台下size_t的范围小于int的正数范围,又或者大于unsigned int.最典型 ...

  9. c# Database类的使用

    参考资料http://ansonlh.iteye.com/blog/1689009 搜索:c# DatabaseFactory类

  10. (转载)Sublime Text 3 快捷键大全

    选择类Ctrl+D 选中光标所占的文本,继续操作则会选中下一个相同的文本.Alt+F3 选中文本按下快捷键,即可一次性选择全部的相同文本进行同时编辑.举个栗子:快速选中并更改所有相同的变量名.函数名等 ...