SORU
27 Mayıs 2010, PERŞEMBE


Bir kodlama için standart bir yolu yoktur .MS Ajax kullanmak için JavaScript dizeye NET dize?

İstemci MS ScriptManager RegisterStartUpScript yöntemini kullanarak SQL Server bir özel durum çıkış geçirmeye çalışıyorum .NET 3.5. Bu bazı hatalar için gayet iyi çalışıyor ama bu durum tek tırnak içeren uyarı başarısız olur.

Ben sadece tek tırnak olsa kaçmak istiyorum. JavaScript kullanmak için herhangi bir özel karakter kaçış için standart bir işlevi var mı?

string scriptstring = "alert('"   ex.Message   "');";         
ScriptManager.RegisterStartupScript(this, this.GetType(), "Alert", scriptstring , true);

EDİT:

Teşekkürler @tpeczek, koduneredeysebana :) işe yaradı ama ufak bir değişiklik (tek tırnak kaçan) ile bir tedavi çalışır.

Burada değiştirilmiş sürümünü dahil ettim

public class JSEncode
{
    /// <summary>
    /// Encodes a string to be represented as a string literal. The format
    /// is essentially a JSON string.
    /// 
    /// The string returned includes outer quotes 
    /// Example Output: "Hello \"Rick\"!\r\nRock on"
    /// </summary>
    /// <param name="s"></param>
    /// <returns></returns>
    public static string EncodeJsString(string s)
    {
        StringBuilder sb = new StringBuilder();
        sb.Append("\"");
        foreach (char c in s)
        {
            switch (c)
            {
                case '\'':
                    sb.Append("\\\'");
                    break;
                case '\"':
                    sb.Append("\\\"");
                    break;
                case '\\':
                    sb.Append("\\\\");
                    break;
                case '\b':
                    sb.Append("\\b");
                    break;
                case '\f':
                    sb.Append("\\f");
                    break;
                case '\n':
                    sb.Append("\\n");
                    break;
                case '\r':
                    sb.Append("\\r");
                    break;
                case '\t':
                    sb.Append("\\t");
                    break;
                default:
                    int i = (int)c;
                    if (i < 32 || i > 127)
                    {
                        sb.AppendFormat("\\u{0:X04}", i);
                    }
                    else
                    {
                        sb.Append(c);
                    }
                    break;
            }
        }
        sb.Append("\"");

        return sb.ToString();
    }
}

Aşağıda orijinal kaynak belirtildiği gibi: here

CEVAP
20 AĞUSTOS 2010, Cuma


HttpUtility.JavaScriptStringEncode bir göz oldu mu?

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • bethliebert

    bethliebert

    23 EKİM 2008
  • HowtoDrawAndPaint

    HowtoDrawAnd

    24 EKİM 2010
  • 趣味そうこ♪

    趣味そう

    3 Mart 2010