小编szk*_*kut的帖子

URL重写中间件ASP.Net Core 2.0

我无法正确写入URL重写中间件.我认为正则表达式是正确的.我第一次使用这个功能,也许我不明白.

示例网址:

http://localhost:55830/shop/alefajniealsdnoqwwdnanxc!@#lxncqihen41j2ln4nkzcbjnzxncas?valueId=116
http://localhost:55830/shop/whatever?valueId=116
http://localhost:55830/shop/toquestionmark?valueId=116
Run Code Online (Sandbox Code Playgroud)

正则表达式:

\/shop\/([^\/?]*)(?=[^\/]*$)
Run Code Online (Sandbox Code Playgroud)

启动,配置:

var rewrite = new RewriteOptions().AddRewrite(
        @"\/shop\/([^\/?]*)(?=[^\/]*$)",
        "/shop/$1",
        true
    );
app.UseRewriter(rewrite);
Run Code Online (Sandbox Code Playgroud)

也许与其他方法有关的订单有问题吗?

控制器:

[Route(RouteUrl.Listing + RouteUrl.Slash + "{" + ActionFilter.Value + "?}", Name = RouteUrl.Name.ShopBase)]
public ActionResult Index(string value, int valueId)
{
    return View();
}
Run Code Online (Sandbox Code Playgroud)

例如,当我重定向到:

HTTP://本地主机:55830 /店/鞋VALUEID = 116

我想像这样显示网址:

HTTP://本地主机:55830 /店/鞋

c# middleware asp.net-core

2
推荐指数
1
解决办法
2257
查看次数

标签 统计

asp.net-core ×1

c# ×1

middleware ×1