Проблемы с конфигурационным файлом Flash XML с asp.net MVC

Я создаю приложение asp.net MVC, впервые делаю это. У меня есть флэш-компонент, который мне нужно использовать в представлении. Я включил SWF-файлы и т. д. в папку «Содержание» и сослался на них с моей точки зрения, файл флэш-памяти загружается, когда вы переходите к представлению, отлично.

Проблема возникает из-за того, что файл флэш-памяти ссылается на XML-файл для своих данных конфигурации, и я получаю сообщение об ошибке при доступе к этому XML-файлу. Я предполагаю, что это связано с тем, что flash ищет относительный путь и использует URL-адрес страницы, который, очевидно, является URL-адресом MVC и поэтому не относится к фактическому местоположению на диске, поэтому файла XML там нет.

Я предполагаю, что очевидным ответом является изменение файла флэш-памяти для поиска XML-файла в папке содержимого, но это означает повторную компиляцию флэш-памяти, а я очень мало знаю о флэш-памяти, поэтому я бы хотел этого избежать. Итак, есть ли способ заставить XML-файл отображаться в том же URL-адресе, что и представление, поэтому на данный момент страница с включенным флэш-компонентом находится по адресу http://localhost/upload/, поэтому я думаю, что файл XML должен быть доступен из http://localhost/upload/flash-settings.xml?

Если есть какой-то другой лучший способ сделать это, не редактируя файл прошивки, я тоже открыт для этого,


person Sam Cogan    schedule 12.07.2009    source источник


Ответы (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" });
person eu-ge-ne    schedule 12.07.2009
comment
Фантастика, XML заработал с этого URL, спасибо! Флэшу это все еще не нравится, но, думаю, мне придется продолжить поиски. - person Sam Cogan; 13.07.2009
comment
Именно то, что я искал. Спасибо. - person Jack Marchetti; 30.09.2010

Вам нужно либо настроить механизм маршрутизации, чтобы разрешить прямой доступ файлов к папке /upload/, либо создать действие контроллера, которое будет возвращать поток XML (динамический или считанный из физического файла XML) и указать ваш SWF на этот маршрут. Я бы выбрал второй вариант, так как он более гибкий.

person synhershko    schedule 12.07.2009