我正在创建一个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文件,我也可以打开它,
答案 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指向该路线。我会选择第二种选择,因为它非常灵活。