2012-06-21 17 views
8

मैं केंडो यूआई से संपादक का उपयोग कर रहा हूं, इसलिए मुझे बड़ी समस्या है।रेज़र के साथ asp.net mvc3 में केंडो यूआई संपादक का उपयोग कैसे करें?

मुझे नहीं पता कि संपादक द्वारा डिस्प्ले आइटम कैसे प्रदर्शित किए जाते हैं।

संपादक परिवर्तित कुछ की तरह:

<img src="someurl" /> 

रहे हैं:

lt;p&gt;&lt;img src=&quot;someurl&quot;/&gt;&lt;/p&gt; 

और मैं डेटाबेस में परिवर्तित स्ट्रिंग रखने के लिए, और साथ में प्रदर्शित की कोशिश:

@Html.Raw(item.description) 

जहां वर्णन स्ट्रिंग है केंडो द्वारा लौटा

तो मैं पता नहीं कैसे यह मेरी देखें

किसी भी मदद की सराहना की जाएगी में सही ढंग से प्रदर्शित किया है।

+0

आप पोस्ट कर सकते हैं कि कैसे की प्रासंगिकता का आपका विचार कैसा दिखता है? – nemesv

+0

मैं इसे अपनी पोस्ट में जोड़ता हूं। –

+0

क्या आप पोस्ट भी कर सकते हैं जहां आप अपने दृश्य में केंडो यूआई संपादक को परिभाषित करते हैं? और यह भी रूप है कि आप डेटा कैसे पोस्ट करते हैं? – nemesv

उत्तर

12

encoded नामक केंडयूआई संपादक का एक विकल्प है जो कॉन्फ़िगर करता है कि संपादक को एन्कोडेड HTML टैग सबमिट करना चाहिए या नहीं।

encoded के लिए डिफ़ॉल्ट मान true

है आप स्टोर करने के लिए जब अपने संपादक बनाने unencoded पाठ इस sniplet का उपयोग wan't हैं:

$("#Editor").kendoEditor({ 
    encoded: false 
}); 

लेकिन क्योंकि आप के लिए एन्कोडेड पाठ नहीं भेज रहे हैं सर्वर Asp.net अनुरोध सत्यापनकर्ता इसमें शामिल है और यह आपके अनुरोध को निरस्त कर देगा।

देखें:

@model MyModel 

@using(Html.BeginForm("SomeAction", "SomeController")) 
{ 
    @Html.TextAreaFor(m => m.Editor) 
    <input type="submit" value="Save" /> 
} 

<script type="text/javascript"> 
    $(function(){ 
     $("#Editor").kendoEditor({ 
     encoded: false 
     }); 
    }); 
</script> 

मॉडल:

public class MyModel 
{ 
    [AllowHtml] 
    public string Editor { get; set; } 
} 

नियंत्रक कार्रवाई

आप दृढ़ता से टाइप किया विचारों आप क्या कर सकते उपयोग कर रहे हैं अपने मॉडल संपत्ति पर AllowHtmlAttribute उपयोग करने के लिए है

public ActionResult SomeAction(MyModel myModel) 
{ 
    //Save to db, etc. 
} 

आप भी अपने web.config में निम्नलिखित सेट करना होगा या इस विशेषता .NET 4.0 में प्रभाव नहीं होगा:

<httpRuntime requestValidationMode="2.0"/> 
+0

धन्यवाद, लेकिन यह मेरी समस्या का केवल आधा हल करता है क्योंकि इसके साथ नई समस्याएं हैं। अगर मैं इस विकल्प को 'झूठी' पर सेट करता हूं तो मुझे उद्धरण और त्रुटि के साथ समस्या है: 'संभावित रूप से खतरनाक अनुरोध। क्लाइंट से फॉर्म मान पता चला था। तो शायद बेहतर तरीका 'एन्कोडेड: सत्य' सेट किया गया है और इसे नियंत्रक में एन्कोड करने के लिए कुछ रूपांतरण का उपयोग करें? कोई विचार कैसे? –

+0

गुणों के लिए '[AllowHtml] 'विशेषता का उपयोग करें जो KendoUI संपादक के लिए बाध्य हैं। – nemesv

+0

मुझे यकीन नहीं है कि मुझे '[AllowHtml] 'विशेषता क्यों जोड़नी चाहिए। –

5

सरल तरीका यह करने के लिए नियंत्रक में बदलता है, तो देख सकते हैं और मॉडल में बनाना है ।तो:

देखें

$("#Editor").kendoEditor(); 

मॉडल

public class MyModel 
{ 
    public string Editor { get; set; } 
} 

नियंत्रक

Editor = Server.HtmlDecode(Editor); 

HtmlDecode

1

.NET Wrappers से उत्पन्न संपादक टेम्पलेट अब और काम नहीं कर रहे हैं। यहाँ एक फिक्स है। मॉडल में देखें

<div class="editor-field"> 
    @(Html.Kendo().EditorFor(model => model.HtmlField).Encode(false)) 
    @Html.ValidationMessageFor(model => model.HtmlField) 
</div> 

में :

http://pknopf.com/blog/kendo-ui-editor-templates-for-asp-net

7

मैं MVC के लिए इस समाधान पाया

[DataType(DataType.Html)] 
    [AllowHtml] 
    public string HtmlField{ get; set; } 

कि पर्याप्त था

+0

उसने अभी मेरे लिए काम किया !!!!!!!!!! ग्रिड पॉप अप विंडो के लिए टेम्पलेट में Html.Kendo() संपादक का उपयोग करते समय अद्यतन क्रूड नियंत्रक को मार नहीं रहा था। मैंने उपरोक्त दो विशेषताओं को जोड़ा और यह काम किया। इच्छा है कि मैं आपको 10 अपवॉट दे सकता हूं !! – KeyboardFriendly