Загрузка и скачивание файлов Visual Studio Lightswitch

Я следую этой статье, чтобы загружать и скачивать файлы с помощью дочернего окна Silverlight. http://gyansangrah.com/ArticleContent.aspx?ID=upload_and_download_file_in_lightswitch_2011

Хотя я использую 2013. Я сослался на свою страницу download.aspx в файле lsxtproj ‹_BuildFile Include="Server\Upload\Download.aspx">.

Я могу загружать файлы без проблем, но когда я загружаю их, я получаю ошибку http 404. Он пытается найти этот URL. http://localhost:54853/Client/Download.aspx?id=6 Запрошенный URL-адрес: /Client/Download.aspx

У меня есть файл Download.aspx в серверном проекте, и я ссылаюсь на него в своем файле lsxtproj.

Я не знаю, почему он выдает ошибку http 404 при попытке загрузить файл с помощью командной кнопки.

Спасибо


person jason    schedule 27.05.2015    source источник
comment
В примере используется ServerGenerated\Download.aspx в файле проекта, что подразумевает (при прочих равных условиях), что он будет найден в корне приложения. Вы использовали Server\Upload\Download.aspx, что означает, что вы используете подкаталог. Пробовали ли вы localhost:54853/Client/Upload/Download.aspx?id=6 для URL?   -  person Phil    schedule 27.05.2015
comment
Папка ServerGenerated недоступна в 2013 году, только папка сервера. Я избавился от подкаталога Upload. Поэтому я пытаюсь добиться того же URL-адреса в статье. Однако у меня появляется поиск папки клиента, а в статье нет. У меня есть файл download.aspx в папке моего сервера.   -  person jason    schedule 28.05.2015
comment
В его статье он не показывает подкаталог клиента в URL-адресе.   -  person jason    schedule 28.05.2015
comment
Я только что попробовал кое-что, если я удаляю клиента из URL-адреса localhost:54853/Download.aspx?id=1002   -  person jason    schedule 28.05.2015
comment
это работает, как только я удаляю клиента из URL-адреса   -  person jason    schedule 28.05.2015


Ответы (1)


Я решаю эту проблему, изменив функцию Download_Execute() следующим образом;

partial void Download_Execute()
    {
        int fileId = this.FileCollection.SelectedItem.Id;
        Uri hostUri = null;
        Dispatchers.Main.Invoke(() =>
        {
            hostUri = System.Windows.Application.Current.Host.Source;

        });


        Dispatchers.Main.Invoke(() =>
        {
            UriBuilder myUri = new UriBuilder(hostUri.Scheme, hostUri.Host, hostUri.Port, "Download.aspx",
               "?Id=" + fileId);

            HtmlPage.Window.Navigate(myUri.Uri, "_new");
        });


    }

и изменил фразу в файле lsxtproj следующим образом:

<_BuildFile Include="Download.aspx">
      <SubFolder>
      </SubFolder>
      <PublishType>
      </PublishType>
    </_BuildFile>
person gurolgencel    schedule 05.06.2015