代码之家  ›  专栏  ›  技术社区  ›  Mitesh Jain

URLENCODE在浏览器MVC中不工作

  •  0
  • Mitesh Jain  · 技术社区  · 6 年前

    嗨,我需要在浏览器中传递的编码URL路径应该如下

    https://localhost:44384/part-lookup/all/gmc/1973/p25%2fp2500+van/base/41l-l6

    但是浏览器将这个URL转换成下面的路径,因此我得到404错误。

    https://localhost:44384/part-lookup/all/gmc/1973/p25/p2500+van/base/41l-l6

    我声明的路由路径如下

    routes.MapRoute(
              name: "ShopByCateShopNow",
              url: "part-lookup/{category}/{make}/{year}/{models}/{submodel}/{engine}",
              defaults: new { controller = "Home", action = "ShopNow" }
            );
    

    在这里,子模型的实际值是“p25/p2500 van”,在编码该值后,它会转换为“p25%2fp2500+van”值,因为它没有正确地重定向并显示404错误。

    我如何解决这个问题?

    2 回复  |  直到 6 年前
        1
  •  2
  •   No Refunds No Returns    6 年前

    %2F

    routes.MapRoute(
              name: "ShopByCateShopNow",
              url: "part-lookup/{category}/{make}/{year}/{modelprefix}/{modelsuffix}/{submodel}/{engine}",
              defaults: new { controller = "Home", action = "ShopNowPrefixSuffix" }
            );
    

    models = $"{modelprefix}/{modelsuffix}"

        2
  •  0
  •   Red    6 年前

    Request.Path.ToString() p25%2fp2500+van

    var url = Request.Path.ToString();
    var model = url.Split('/')[4];