Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
asp.net MVC中的Flash XML配置文件问题_Asp.net_Asp.net Mvc_Flash_Url Routing - Fatal编程技术网

asp.net MVC中的Flash XML配置文件问题

asp.net MVC中的Flash XML配置文件问题,asp.net,asp.net-mvc,flash,url-routing,Asp.net,Asp.net Mvc,Flash,Url Routing,我正在创建一个asp.net MVC应用程序,这是我第一次这么做。我有一个flash组件需要在视图中使用。我已经在目录文件夹中包含了SWF文件等,并从我的视图中引用了它,当你到达视图时,flash文件会加载,太好了 出现这个问题是因为flash文件引用了XML文件作为其配置数据,而我在访问该XML文件时遇到了一个错误。我猜这是因为flash正在寻找一个相对路径,并且正在使用页面的URL,这显然是一个MVC URL,因此没有指向磁盘上的实际位置,因此XML文件不在那里 我想最明显的答案是修改fla

我正在创建一个asp.net MVC应用程序,这是我第一次这么做。我有一个flash组件需要在视图中使用。我已经在目录文件夹中包含了SWF文件等,并从我的视图中引用了它,当你到达视图时,flash文件会加载,太好了

出现这个问题是因为flash文件引用了XML文件作为其配置数据,而我在访问该XML文件时遇到了一个错误。我猜这是因为flash正在寻找一个相对路径,并且正在使用页面的URL,这显然是一个MVC URL,因此没有指向磁盘上的实际位置,因此XML文件不在那里

我想最明显的答案是修改flash文件,在contents文件夹中查找XML文件,但这意味着重新编译flash,我对flash知之甚少,所以我希望避免这样做。那么,有没有办法让XML文件显示在与视图相同的URL中,因此目前,打开flash组件的页面位于htttp://localhost/upload/ 所以我想XML文件需要从中访问


如果有其他更好的方法,不编辑flash文件,我也愿意这样做,

您需要设置路由机制以允许直接访问/upload/文件夹,或者创建一个控制器操作,返回XML流(动态或从物理XML文件读取的流),把你的SWF指向那条路线。我选择第二个选项,因为它非常灵活。

将此操作添加到FlashUpload控制器:

public class FlashUploadController : Controller
{
    [AcceptVerbs(HttpVerbs.Get)]
    public ActionResult FlashSettings()
    {
        var fileName = Server.MapPath("~/Contents/flash-settings.xml");

        return new FilePathResult(fileName, "text/xml");
    }
}
这条通往RouteTable的路线是:

routes.MapRoute("FlashSettings", "upload/flash-settings.xml",
    new { Controller = "FlashUpload", Action = "FlashSettings" });

太棒了,这让XML从那个URL开始工作,谢谢!Flash仍然不喜欢它,但我想我必须继续寻找。这正是我一直在寻找的。非常感谢。