0

我在 MVC 项目中有一个路由配置:

routes.MapRoute(
                name: "Client",
                url: "Client/{webUi}/{lang}/{*controllerUrl}",
                defaults: new
                {
                    controller = "Client",
                    action = "Index",
                    lang = "en-GB"
                }
            );

我有一个带有方法 Index() 的 ClientController。

public ActionResult Index(string webUi, string lang, string controllerUrl)
        { ... }

我正在尝试使用 URL:

Client/ZWS/{lang}/ImportBundles?from=bundle

但是,当我调试 ClientController 时,我发现 controllerUrl 中的值是 ImportBundles。from=bundle 的参数只是被剥离了。

有没有可能实现?

提前致谢!

编辑:

  1. 我只是尝试使用此 URL:

    客户端/ZWS/{lang}/ImportBundles/from/bundle

它奏效了。但是是否可以使用这种格式:

Client/ZWS/{lang}/ImportBundles?from=bundle
4

1 回答 1

0

不完全是,但您可以?通过访问Request.QueryString.

Request.QueryString["from"] //would evaulate to "bundle"

您不需要 * 用于路由定义中的全部内容来执行此操作。如果你的格式总是这样Client/ZWS/{lang}/ImportBundles?from=bundle,你可以在你的路由定义结束时去掉它

...
url: "Client/{webUi}/{lang}/{controllerUrl}",

并且controllerUrl仍将评估为“ImportBundles”

于 2019-08-12T12:00:24.730 回答