我正在开发一个使用Flash电影作为横幅的ASP.NET MVC应用程序。我正在尝试加载它,但由于某种原因,url被视为Action并且用户被重定向到登录页面。
有趣的是,如果我将文件放在具有不同扩展名的同一目录中(例如.txt)并尝试加载该文件,则不会将其视为操作。
如果我将浏览器指向此网址:
http://localhost/AppImWorkingOn/Content/Banner/banner.swf
这让我重定向到/ Account / LogOn?ReturnUrl = ...,标准的ASP.NET MVC登录路由。
如果我将浏览器指向此网址:
http://localhost/AppImWorkingOn/Content/Banner/banner.txt
这让我得到了文件。两个URL都指向同一目录中服务器上存在的文件。好像有什么东西挡住.swf文件类型。
我在Windows 7上使用IIS,并检查了MIME等,但找不到问题。 ASP.NET MVC如何确定某个文件或控制器是否有动作?
答案 0 :(得分:1)
让MVC忽略“.swf”扩展名的路由。
http://haacked.com/archive/2008/07/14/make-routing-ignore-requests-for-a-file-extension.aspx
答案 1 :(得分:0)
问题是文件权限。这是一个来自通过电子邮件发送给我的zip文件。我将文件夹拖出拉链并移动到位,这可能是我能做的最糟糕的事情。这些文件被单独阻止和加密(它们变为绿色),因此UrlRouteModule不会将它们视为存在的文件,而是坚持认为它们是Action方法。
我应该在开始复制其中的资产之前“解锁”该zip文件。