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

  • Adam Khoury

    Adam Khoury

    23 Ocak 2008
  • Ama Jenna

    Ama Jenna

    29 NİSAN 2011
  • the one am radio

    the one am r

    6 Mayıs 2006