我有一个奇怪的问题,不知道如何解决。
。NET的通常行为是,如果您具有如下网址:/action?id=abc&=type=3
服务器变量类似于:
URL: /action
PATH_INFO: /action
QUERY_STRING: id=abc&=type=3
但是出现奇怪的行为:当请求来自mediapartners-google时,服务器变量不会在问号处拆分URL,而是:
URL: /action?id=abc&=type=3
PATH_INFO: /action?id=abc&=type=3
QUERY_STRING:
因此,路由引擎正在尝试查找名为action?id=abc&=type=3
的操作名称,但找不到它,提供了404错误。
有人知道为什么会这样吗?
对于MVC,当路由引擎已匹配路由时,其余的将填充到可选参数中。在到达问号之前,很可能会进行路线匹配。看来您需要其他方法来处理这种情况。还请记住,您需要按从最强到最弱的顺序排列路线,因为它们由匹配的第一条路线处理。