C# kullanarak bir asp.net sitesi (aslında, bir DotNetNuke modülü) yazıyorum. Kod arkasından, gerekli js değişkenini belirlediğim bir <script>
etiketi oluşturmaya çalışıyorum, daha sonra bunu HMTL <head>
'a ekleyin. Js var görüntü dosyaları için bir (literal) göreceli url dizisidir. Dizi dizeler içerdiğinden, her öğe tırnak içine alınmalıdır. Her dizi öğenin çevresindeki tırnak "
ile değiştirilir ediliyor yüzden sorunHtmlGenericControl, html kodlama içeriğinden nasıl korunur?
, <script>
ve </script>
arasındaki dize otomatik yere HTMLEncoded ediliyor. Bu, HtmlGenericControl
oluşturulduğunda gerçekleşiyor gibi görünüyor. DotNetNuke suçlu olabilir mi? Birisi bir geçici çözüm önerebilir mi? (Benim kontrolünde Page_Load
işleyicisinden çalıştıran)
Benim geçerli kod: düğümü değil ınnertext mülkiyet ait InnerHtml özelliği kullanılarak en
HtmlGenericControl PreviewDataScriptTag = new HtmlGenericControl("script");
PreviewDataScriptTag.Attributes.Add("type", "text/javascript");
StringBuilder PreviewDataScriptCode = new StringBuilder();
PreviewDataScriptCode.Append("var preview_imgs = [");
string pathPrefix = @"""";
string pathSuffix = @""",";
foreach (string path in this.DocPreviewImages)
{
PreviewDataScriptCode.Append(pathPrefix + PreviewUrlBase + Path.GetFileName(path) + pathSuffix);
}
// Remove last comma from js code
PreviewDataScriptCode.Remove(PreviewDataScriptCode.Length-1, 1);
PreviewDataScriptCode.Append("];");
PreviewDataScriptTag.InnerText = PreviewDataScriptCode.ToString();
Page.Header.Controls.Add(PreviewDataScriptTag);
Değişkenleriniz için daha küçük harfli adlar kullanmanızı öneririz. Bu okumak için kafa karıştırıcı. – Amy
Bahşiş için teşekkürler. Gerçekten .net için kullanmıyorum ve gerçekleştirdikten sonra her şey için büyük harf kullanmaya başladım. Net geliştiriciler büyük harfle * nesne özelliği isimleri *. Sanırım bu bir düzeltme meselesi! – bfavaretto