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

  • Epic Tutorials for iPhone, iPad and iOS

    Epic Tutoria

    18 EYLÜL 2011
  • FullMag

    FullMag

    15 ŞUBAT 2007
  • Sparta Spartanutul

    Sparta Spart

    18 HAZİRAN 2013