2015-05-27 5 views
0

Я следую за этой статьей, чтобы загружать и загружать файлы, используя дочернее окно silverlight. http://gyansangrah.com/ArticleContent.aspx?ID=upload_and_download_file_in_lightswitch_2011Visual Studio lightswitch Загрузка и скачивание файлов

Я использую 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 при попытке загрузить файл с помощью командной кнопки.

Благодаря

+0

В примере используется файл ServerGenerated \ Download.aspx в файле проекта, который подразумевает (при прочих равных условиях), что он будет найден в корне приложения. Вы использовали Server \ Upload \ Download.aspx, что означает, что вы используете подкаталог. Вы пробовали http: // localhost: 54853/Client/Upload/Download.aspx? Id = 6 для URL-адреса? – Phil

+0

ServerGenerated папка не доступна в 2013 году только в папке сервера. Я избавился от подкаталога Upload. Поэтому я пытаюсь достичь того же URL-адреса в статье. Однако мой придумывает поиск папки клиента, но в статье нет. У меня есть файл download.aspx в папке моего сервера. – jason

+0

В своей статье он не показывает клиентский подкаталог по URL-адресу – jason

ответ

0

Я решить эту проблему, изменив функцию 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>