2009-07-12 5 views
1

처음으로이 작업을 수행 한 asp.net MVC 응용 프로그램을 만들고 있습니다. 내가보기에 사용해야하는 플래시 구성 요소가 있습니다. 나는 SWF 파일 등을 Contents 폴더에 포함 시켰고, 내 뷰에서이를 참조했다. 뷰에 도착하면 플래시 파일이로드된다.asp.net MVC의 Flash XML 구성 파일 문제

플래시 파일이 해당 구성 데이터에 대한 XML 파일을 참조하고 해당 XML 파일에 액세스하는 중 오류가 발생하기 때문에 문제가 발생합니다. Flash가 상대 경로를 찾고 페이지의 URL을 사용하고 있기 때문에 추측 할 수 있습니다. 이는 분명히 MVC URL이며 디스크의 실제 위치를 나타내지 않으므로 XML 파일이 없습니다.

명백한 대답은 XML 파일의 내용 폴더를 볼 플래시 파일을 변경하는 것이지만 플래시를 다시 컴파일한다는 것을 의미하며 플래시에 대해서는 거의 알지 못하므로 필자는하지 말아야한다. 그. 따라서 XML 파일을보기와 동일한 URL에 표시하는 방법은 없으므로 현재 플래시 구성 요소가있는 페이지는 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이 경로를 : 덕분에 그 URL에서 작동하는 XML을 가지고 그,

routes.MapRoute("FlashSettings", "upload/flash-settings.xml", 
    new { Controller = "FlashUpload", Action = "FlashSettings" }); 
+0

우수함! 플래시는 여전히 좋아하지 않지만 계속 살펴 봐야 할 것 같습니다. –

+0

정확히 내가 무엇을 찾고 있었습니까. 고맙습니다. –

1

는/업로드에 대한 액세스를/폴더를 만들거나 XML 스트림 (동적 또는 실제 XML 파일에서 읽은 스트림)을 반환하는 Controller Action을 만들고 SWF에서 해당 Route를 가리 키도록하십시오. 두 번째 옵션을 사용하면 훨씬 유연합니다.