2011-01-20 6 views
6

पर सामग्री एएसपी.NET 4.0 आधारित सीएमएस है, जहां मैं एक टेक्स्टबॉक्स को संपादित करने के लिए jQuery के माध्यम से TinyMCE (3.4) का उपयोग करता हूं।TSPMCE और XML एन्कोडिंग के साथ एएसपी.Net 4.0 पोस्टबैक

इसके अतिरिक्त मेरे पास कई अन्य टेक्स्टबॉक्स हैं। पृष्ठ पर एक और ड्रॉपडाउन सूची भी है, जो सामग्री प्रकार को नियंत्रित करती है। इस नियंत्रण में ऑटोपोस्टबैक सक्षम है और चयन आइटम के संबंध में टेक्स्टबॉक्स पर दृश्यता सेट करता है।

जैसा कि मैं पोस्टबैक प्रमाणीकरण रखना चाहता हूं, मैंने सामग्री क्रमबद्धता (एन्कोडिंग: "xml") के लिए xml का उपयोग करने के लिए TinyXML को कॉन्फ़िगर किया है।

अब मुझे समस्या है, जब से एक पोस्टबैक ड्रॉपडाउन सूची होती है, सामग्री को फिर से एन्कोड करता है।

Init: "Hallo" 
1st Postback: "<p>Hallo</p>" 
2nd Postback: "<p>&lt;p&gt;Hallo&lt;/p&gt;</p>" 

मैं सीएसएस के माध्यम से मूल पाठ क्षेत्र सक्षम किया है और इस TinyMCS सेव विधि की एक समस्या हो रहा है। क्या किसी के पास कोई समाधान है, इस समस्या को ठीक से TinyMCE पर कस्टम save_callback के साथ कैसे ठीक किया जाए?

+1

मेरा उत्तर यहाँ http://stackoverflow.com/a/34100978/1201322 – Ravimallya

+0

की संभावित डुप्लिकेट देखें [TinyMCE एचटीएमएल कोड प्राप्त जब पोस्टबैक] (http: // stackoverflow।कॉम/प्रश्न/563621 9/tinymce-get-html-code-when-postback) –

उत्तर

0

entity_encoding सेटिंग में कोई मदद नहीं है?

+1

नहीं, क्योंकि यह सेटिंग केवल चीजों को एन्कोड किए जाने के तरीके को परिभाषित करती है, और मेरी समस्या यह है कि दो बार एन्कोड किया जाता है। – Christoph

+0

हम्म, तो मैं ईमानदारी से सोचता हूं कि यह समस्या एक tinymce समस्या नहीं है, क्या आपने अन्य सर्वर साइड कोड और अनुरोध/परिणाम की जांच की है? – Thariama

+0

हां। मैंने अंतर्निहित textarea (सीएसएस के माध्यम से) सक्षम किया है और वहां पोस्टबैक TinyMCE को डबल एन्कोडेड HTML लिखने का कारण बनता है। पोस्टबैक ने किसी भी कोडबिंड विधियों को नहीं बुलाया। – Christoph

1

क्या यह हो सकता है कि डेटा सहेजने के बाद टिनिमस विंडो में पुनः लोड किया जा रहा हो?

जब मैं इस से पहले TinyMCE/WebForms में, यह आसानी से फॉर्म फील्ड को आबाद करने से पहले डेटा डिकोडिंग द्वारा तय की और Postbacks के बाद किया गया था का सामना करना पड़ा:

TextAreaID.Text = Server.HtmlDecode ("< पी > हैलो </पी > ");

1

मुझे अभी टिनिमस और एएसपी.नेट एमवीसी के साथ एक ही समस्या है। मेरे मामले में क्या हो रहा था था:

  1. फ़ॉर्म सबमिट किया जाता और TinyMCE html सामग्री (मैं encoding: 'xml' विकल्प का उपयोग कर रहा)
  2. मेरे सर्वर साइड पद कार्रवाई में, मैं टैग करने के लिए मैं चाहता हूँ डिकोड html encodes अनुमति दें (सरलीकृत उदाहरण: decodedHtml = model.HtmlContent.Replace("&lt;p&gt;", "<p>"))। तब डेटाबेस और आदि को बचाने के बाद, मैं डीकोड एचटीएमएल साथ model.HtmlContent अद्यतन (model.HtmlContent = decodedHtml)

लेकिन इस बिंदु पर TinyMCE संपादक इनकोडिंग एचटीएमएल दिखा रहे थे, यानी <p>test</p> के बजाय &lt;p&gt;test&lt;/p&gt;, भले ही मैंने किया मेरी पोस्ट एक्शन में model.HtmlContent = decodedHtml। वास्तव में क्या होता है एएसपीनेट पोस्टबैक पर मॉडल में मूल्य को अनदेखा करता है और इसके बजाय पोस्ट किए गए मान को बांधता है (यह कैसे काम करता है इस बारे में अधिक जानकारी के लिए http://weblog.west-wind.com/posts/2012/Apr/20/ASPNET-MVC-Postbacks-and-HtmlHelper-Controls-ignoring-Model-Changes देखें)।

इस के चारों ओर एक रास्ता अपनी पोस्ट कार्रवाई में है

ModelState.Remove("HtmlContent"); 

करने के लिए और फिर इसे तैनात मूल्य के बजाय आपके विचार मॉडल में मूल्य के लिए बाध्य होगा।

तो मेरे मामले में, यह मुद्दा वास्तव में tinymce के साथ नहीं था, लेकिन जिस तरह से फॉर्म पोस्ट asp.net mvc में काम करते हैं। उम्मीद है कि यह किसी की मदद करता है।

संबंधित मुद्दे