1

初めてasp.netMVCアプリを作成しています。ビューで使用する必要のあるフラッシュコンポーネントがあります。SWFファイルなどをContentsフォルダーに含め、ビューから参照しました。ビューに到達すると、フラッシュファイルが読み込まれます。

この問題は、フラッシュファイルがその構成データのXMLファイルを参照しているために発生し、そのXMLファイルへのアクセスでエラーが発生します。これは、flashが相対パスを検索し、ページのURLを使用しているためだと思います。これは明らかにMVC URLであり、ディスク上の実際の場所を参照していないため、XMLファイルはありません。

明らかな答えは、フラッシュファイルを変更してXMLファイルのコンテンツフォルダーを探すことだと思いますが、それはフラッシュを再コンパイルすることを意味し、フラッシュについてはほとんど知らないので、それを避けたいと思います。したがって、XMLファイルをビューと同じURLに表示する方法はありますか?現時点では、フラッシュコンポーネントがオンになっているページはhtttp:// localhost / upload /にあるので、XMLファイルだと思いますhttp://localhost/upload/flash-settings.xmlからアクセスできる必要がありますか?

フラッシュファイルを編集せずにこれを行う他のより良い方法がある場合は、それも開いてください。

4

2 に答える 2

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" });
于 2009-07-12T20:00:30.740 に答える
1

/ upload /フォルダーへの直接フ​​ァイルアクセスを許可するようにルーティングメカニズムを設定するか、XMLストリーム(動的または物理XMLファイルから読み取られたもの)を返すコントローラーアクションを作成して、そのルートへのSWF。柔軟性が高いので、2番目のオプションを使用します。

于 2009-07-12T19:58:43.817 に答える