Fråga : ASP.NET: URLs med apostrofer som kastar fel på serveren men inte i bärare-miljö

Jag har en ASP.NET app, att framkallas i VS2008, som är rinnande på IIS 6. Den tar fram en SQL-serverdatabas 2005 och frambringar baserade URLs på data i en särskild kolonn. Till exempel om kolonnen innehåller texten ”, några tar prov text”, den skulle frambragda URLEN är: för href=" http://MyApp/default.aspx?name=Some+Sample+Text” för

http://MyApp/default.aspx? name=Some+Sample+Text

The app fungerar fint, bortsett från ett kusligt fel. Om stränga från källkolonnen inkluderar en apostrof -- något att säga ”är här någon tar prov text”, -- den frambringar en URL formaterad något liknande så: för href=" http://MyApp/default.aspx?name=Here%3bs+Some+Sample+Text” för

http://MyApp/default.aspx? arbeten för name=Here%3bs+Some+Sample+Text

This perfekt i bärare-miljön och avlusare, men, när jag publicerar platsen till serveren, någon frambragd URL, som inkluderar en apostrof, kastar ett runtime fel. Felet sig själv är nedanfört, och definitionen av ”den brödsmula” metoden som den hänvisar till, fästas. Jag skulle är tacksam för, allt vad hjälp som du kan erbjuda. Om du behöver något mera information om appen, fråga precis. För ************************** för Thanks.



There för **** för för ********** för för ********** är ingen ror på placerar 0.
Description: Ett unhandled undantag uppstod under utförandet av strömrengöringsdukförfråganen. Behaga granskar bunttracen för mer information om felet och var det påbörjade i kodifiera.

Exception specificerar: System.IndexOutOfRangeException: Det finns inget ror på placerar fel för 0.

Source:

Line 105:        
Line 106 för runat=" server” ID= " ViewDescription ":            


Line 107:            <%=-brödsmulor () %>
Line 108:            >
Line 109 för
 
> för
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
" codeBody " " >public för class= " för Library; {0} ”, period [”kategori”]); om annars (perioden [”kategori”]! = ogiltig &&period [”namnge”]! = ogiltigt) återgång BreadcrumbHelper (perioden [”kategorien”], ParseQueryName (period [”namnge”],)); om annars, perioden för && för == (för perioden [”kategori”] den ogiltiga [”namnge”]! = ogiltigt) //if direkt återgång BreadcrumbHelper (LibraryModuleHelper.Category (perioden [”namnge”], .ToString ()), ParseQueryName (period [”namnge”],)); retur stränger. Tomt; }
" klar "

Svar : ASP.NET: URLs med apostrofer som kastar fel på serveren men inte i bärare-miljö

Är du using javascript i dig kodifierar,
Om så, 'tolkas som avslutar av stränger, och den är ditt avbrott kodifierar, dig behöver att byta ut det, kontrollerar:
http://www.devx.com/tips/Tip/13618

Notera: Om du inte använder js, det betyder inte att det ditt inre kodifierar inte frambringar js (ha en look i IE på källan av din sida),
Andra lösningar  
 
programming4us programming4us