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

时间:2009-07-12 19:39:46

标签: asp.net asp.net-mvc flash url-routing

我正在创建一个asp.net MVC应用程序,这是我第一次这样做。我有一个我需要在视图中使用的flash组件。我已将SWF文件等包含在Contents文件夹中并从我的视图中引用它,当你到达视图时加载flash文件,很棒。

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

我想明显的答案是改变flash文件以查看XML文件的contents文件夹,但这意味着重新编译flash,我对Flash知之甚少,所以我想避免这样做。那么有没有办法让XML文件显示在与视图相同的URL中,所以目前,带有flash组件的页面位于htttp:// localhost / upload /所以我猜XML文件需要从http://localhost/upload/flash-settings.xml访问?

如果还有其他更好的方法可以执行此操作,而无需编辑Flash文件,我也可以打开它,

2 个答案:

答案 0 :(得分:2)

将此操作添加到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" });

答案 1 :(得分:1)

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