2009-07-12 9 views
1

初めてこの作業を行ったときに、asp.net MVCアプリケーションを作成しています。私はビューで使用する必要があるフラッシュコンポーネントがあります。私はSWFファイルなどをContentsフォルダに含めて、私のビューから参照しました。ビューに入ると、フラッシュファイルが読み込まれます。asp.net MVCのFlash XML設定ファイルの問題MVC

この問題は、Flashファイルが構成データの参照とXMLファイルを参照しているために発生し、そのXMLファイルにアクセスする際にエラーが発生します。私はこれが推測しているのは、Flashが相対パスを探していて、明らかにMVCのURLであるページのURLを使用しているため、ディスク上の実際の場所を参照していないためです。

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

フラッシュファイルを編集せずに、これを行うには、他のより良い方法がある場合は、あまりにもそれに開放イム、あなたが直接ファイルを可能にするために、ルーティングメカニズムを設定するか必要があります

答えて

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" }); 
+0

をそのURLから作業XMLを得た素晴らしい、ありがとう!フラッシュはまだそれを好きではありませんが、私は見続ける必要があると思います。 –

+0

まさに私が探していたものです。ありがとうございました。 –

1

は/アップロードへのアクセス/フォルダーを作成するか、XMLストリーム(動的または物理XMLファイルから読み取ったもの)を返すコントローラーアクションを作成し、SWFをそのルートにポイントします。私は第二の選択肢を持っています。柔軟性が高いからです。