2016-01-07 2 views
0

Вот как мы получаем название компании пользователя от сеанса в ASPX страницеПочему encodeURIComponent не работает, если запрашиваемая строка содержит цитату?

var Details = "AgentCompanyName=" + encodeURIComponent("<%=((Agent_Html5.AgentClassLib.clsAgentSession)Session["UserSession"]).strAgentCompanyName%>"); 

выше кода работает отлично, если strAgentCompanyName не содержит цитаты (одинарные, двойные), но что в нем, то он не работает. например. если имя компании-агента указано как: решение David «Mike» Bela, тогда оно вызывает ошибку, так как не соответствует строке рядом с ключевым словом Mike.

"Решение Бел "Подробнее =" AgentLastName = David" Майк

Как обращаться для одного/двойных кавычек?

ответ

0

Вам нужно избежать двойных кавычек перед выходом для javascript. Так что это будет действительный синтаксис. Вы должны использовать что-то вроде:

<%= yourValue.Replace("\"", "\\\"") %> 

Также вы можете использовать лучший способ бегства с JavaScript:

var Details = "AgentCompanyName=" + $("<div/>").text("<%=yourValue%>").html(); 

При этом вы будете создавать в DIV памяти элемента, установите значение как текст и получить как одичавшие HTML.

+0

Hi @Mitja Kramberger, Как обращаться за двойную кавычку ?? – Kaishu

+0

Обновлено, чтобы избежать двойных кавычек –

+0

, поэтому нам нужно обрабатывать его дважды, как для одиночной и двойной кавычек, как и я: '<% = strString.Replace (" \ "," \\\ '"). Заменить (" \ " "," \\\ "")%> 'правильно? – Kaishu

Смежные вопросы