代码之家  ›  专栏  ›  技术社区  ›  Sam Cogan

ASP.NET MVC的Flash XML配置文件问题

  •  1
  • Sam Cogan  · 技术社区  · 15 年前

    我正在创建一个ASP.NET MVC应用程序,这是我第一次这样做。我有一个flash组件需要在视图中使用。我已经将SWF文件等包含在内容文件夹中,并从我的视图中引用了它,当你进入视图时,Flash文件会加载,太好了。

    出现问题的原因是闪存文件引用了配置数据的XML文件,而我在访问该XML文件时出错。我猜这是因为flash正在寻找一个相对的路径,并且正在使用页面的URL,这显然是一个mvc URL,因此不引用磁盘上的实际位置,所以xml文件不在那里。

    我想最明显的答案是修改flash文件以在contents文件夹中查找xml文件,但这意味着重新编译flash,我对flash知之甚少,所以我想避免这样做。因此,是否有任何方法可以让XML文件显示在与视图相同的URL中,所以目前,打开flash组件的页面位于htttp://localhost/upload/so我想需要从 http://localhost/upload/flash-settings.xml ?

    如果还有其他更好的方法可以做到这一点,不用编辑闪存文件,我也会打开它,

    2 回复  |  直到 14 年前
        1
  •  2
  •   eu-ge-ne    15 年前

    将此操作添加到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" });
    
        2
  •  1
  •   synhershko    15 年前

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