• Asp.net core 学习笔记 (操作 url and query params)


    更新 :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();

    以上

  • 相关阅读:
    串行通讯FIFO法和中断处理程序中直接处理的比较
    [FSM]状态机入门——程咬金只要三斧头厉害
    [FSM]状态机平面(任务平面)
    KMP算法
    【对线面试官】 Java 泛型
    【对线面试官】Java注解
    古文明中的经典作品
    《我是猫》总结
    Vue快速使用
    《算法帝国》总结
  • 原文地址:https://www.cnblogs.com/keatkeat/p/9024022.html
Copyright © 2020-2023  润新知