Hej, blir ju lite nyfiken: varför använder du HttpContext.Current.Response för att skriva till en fil? antar det saknas någon info eller så är jag för korkad :/ Jag använder mig av en befintlig kodsnutt som just råkar använda httpcontext. Målet är att hos användaren skapa en kommaseparerad fil som användaren kan öppna/spara på sin dator. hm Aha, men varför får jag inte skapa filen hos användaren på det sättet jag gör? Det är ju i princip bara en textfil som skapas. Licensproblem pga att Excel är involverat? Hej, HTML-markupen är kvar på sidan... Jag gör en Response.End() efter att filen har skapats, vilket gör att jag inte får med någon kod från aspx-sidan i den skapade filen. Varför bör jag ta bort html-markupen, menar du? Hej,Problem med HttpContext.Current.Response
Jag har en enkel asp.net-sida med en knapp. Vid knapptryckning körs en metod som tar en string (strContent) och skriver den till en kommaseparerad fil på följande vis:
HttpRequest request = HttpContext.Current.Request;
HttpResponse response = HttpContext.Current.Response;
response.Clear();
response.ContentEncoding = System.Text.Encoding.GetEncoding("ISO-8859-1");
strMimeType = "application/x-msdownload";
response.ContentType = strMimeType;
response.AddHeader("Content-Disposition", "attachment; filename=" + strDownloadFileName);
response.Write(strContent);
Problemet är att filen som skapas (om man kan kalla det så) innehåller dels strContent, men även koden från aspx-sidan. Hur gör jag för att bryta strömmen i slutet på strContent, så att jag slipper få med aspx-koden?
Jag har provat att avsluta med response.End() vilket gör att filen jag får ut innehåller enbart strContent (vilket jag vill ha), men just den raden kastar ett exception som lyder:
{Unable to evaluate expression because the code is optimized or a native frame is on top of the call stack.}
Vad kan jag göra för att få med enbart strContent, men utan att den kastar ett exception?
Sv: Problem med HttpContext.Current.Response
Sv:Problem med HttpContext.Current.Response
Finns det nåt enklare sätt att skicka textsträngen strContent så att den öppnas/sparas i kommaseparerat Excelformat (csv) hos användaren?Sv: Problem med HttpContext.Current.Response
vi har ett flertal såna grejer på vår sajt och metoderna varierar :)
enklaste metoden är att skjuta in datat i en repeater i ett nytt fönster
så kan de kopiera och klistra in i excell
eller så skriver du till en fil som de kan ladda ner
med system.text.stringbuilder kanske?
oavsett så lär du inte få skapa en fil hos användaren Sv:Problem med HttpContext.Current.Response
Sv: Problem med HttpContext.Current.Response
Du har väl sett till att ta bort all html-markup från aspx-sidan?
MVH
HerbjörnSv:Problem med HttpContext.Current.Response
Vilka problem kan ovanstående tillvägagångssätt orsaka problem om det finns en brandvägg mellan server och klient? Eller it-avdelningen? Utveckla gärna.Sv: Problem med HttpContext.Current.Response
Om du tar bort all aspx-kod slipper du anropa Response.End() ...
MVH
Herbjörn