我有一个基于 Flash 的组件,它坚持要求在我当前所在的任何“目录”中提供 XML 设置文件。
这意味着它要求像...这样的路径
/Home/mysettings.xml
/Home/Record/mysettings.xml
/AnotherController/AnotherAction/mysettings.xml
这很烦人。我正在尝试创建一个 MVC 路由来捕获任何东西mysettings.xml
并将它们发送到静态操作。我已经为 XML 创建了一个视图,我可能需要即时交换变量(可能使用某种 URL 查询)。
这是我的第一个刺Global.asax.cs
:
routes.MapRoute(
"XmlOverride",
"mysettings.xml",
new { controller = "Home", action = "MyXML" }
);
但我错过了一些东西。无论我对它做什么,它要么是 404,要么不会去正确的位置。有没有办法让它路由到正确的动作?我可以在此过程中保留 URL 变量吗?
谢谢!
更新
我有一个像这样工作的破解版本。我不确定这是最好的方法,但它似乎有效。有没有人有更好的解决方案?
routes.MapRoute(
"XmlOverride",
"{c}/mysettings.xml",
new { controller = "Home", action = "MyXML" }
);
routes.MapRoute(
"XmlOverride+Action",
"{c}/{a}/mysettings.xml",
new { controller = "Home", action = "MyXML" }
);
你不能使用{controller}
或者{action}
因为它在一个固定的路径上。