2011-06-14 12 views
6

निम्न उदाहरण में में html मार्कअप पासिंग,एक ASP.NET उपयोगकर्ता नियंत्रण

<uc1:MyUserControl> 

    <p>this is html</p> 

</uc1:MyUserControl> 

मैं कैसे MyUserControl भीतर एक स्ट्रिंग के रूप "<p>this is html</p>" का उपयोग इतना है कि मैं इसे प्रतिक्रिया में इंजेक्षन सकता है?

मैं <uc1:MyUserControl myparameter="<p>this is html</p>" /> की तरह एक स्ट्रिंग पैरामीटर में गुजर के बारे में बात नहीं कर रहा हूँ, लेकिन मैं कैसे इस तरह के एक <MessageTemplate> टैग के रूप में या तो खोलने और बंद करने टैग या के बीच कुछ अन्य तंत्र द्वारा सच बहु लाइन intellisensed HTML मार्कअप का उपयोग करते हैं।

एएसपी.नेट एमवीसी 3 में काम करने वाले समाधान के लिए बोनस पॉइंट्स!

संपादित करें:

और StriplingWarrior के लिए धन्यवाद this link लापता पहेली टुकड़े के रूप में, जादू किया गया था:

तो, किसी भी दृश्य में:

<%@ Register src="../../Shared/Ribbon.ascx" tagname="Ribbon" tagprefix="uc1" %> 
... 
<uc1:Ribbon ID="Ribbon" runat="server"> 
    <Content> 
    Hello world! I am <b>pure html</b> being passed into a UserControl! 
    </Content> 
</uc1:Ribbon> 

Ribbon.ascx में:

<%@ Control Language="C#" CodeBehind="Ribbon.ascx.cs" Inherits="NunYourBeezwax.Views.Shared.Ribbon" %> 
<table> 
    <tr> 
     <td>I am reusable stuff that wraps around dynamic content</td> 
     <td><%= this.Content %></td> 
     <td>And I am stuff too</td> 
    </tr> 
</table> 

एन d अंत में, Ribbon.ascx.cs में

using System.Web.Mvc; 
using System.Web.UI; 

namespace NunYourBeezwax.Views.Shared 
{ 
    [ParseChildren(true, "Content")] 
    public class Ribbon : ViewUserControl 
    { 
     [PersistenceMode(PersistenceMode.EncodedInnerDefaultProperty)] 
     public string Content { get; set; } 
    } 
} 

प्रदान करेगा के रूप में (स्वयं MVC में जोड़ने की आवश्यकता है):

<table> 
    <tr> 
     <td>I am reusable stuff that wraps around dynamic content</td> 
     <td>Hello world! I am <p>pure html<p> being passed into a UserControl!</td> 
     <td>And I am stuff too</td> 
    </tr> 
</table> 
+0

क्या यह केवल एमवीसी में काम करता है? मैं एक गैर एमवीसी पर्यावरण में काम करने के समान कुछ पाने का प्रयास नहीं कर रहा हूं, यह सुनिश्चित नहीं है कि एमवीसी विशिष्ट कौन सा हिस्सा है? यह अच्छा होगा अगर आपने कोई ऐसा उत्तर बनाया जिसके पास आपका समाधान है, या अपना कोड शामिल करने के लिए स्वीकृत उत्तर अपडेट किया गया है। –

उत्तर

3

ठेठ WebForms नियंत्रण में, HTML स्वचालित रूप से एक शाब्दिक नियंत्रण में रखा जाएगा MyUserControl के Controls संग्रह में। टेम्पलेट गुणों के साथ नियंत्रण थोड़ा अलग काम करते हैं, लेकिन आप अभी भी उस संपत्ति के माध्यम से उसी तरह पहुंच सकते हैं जिसका नाम आप उपयोग कर रहे हैं (उदा। MessageTemplate)।

एमवीसी पूरी तरह से अलग तरीके से काम करता है, और मुझे नहीं पता कि वहां क्या करने के लिए कोई तरीका है या नहीं। यदि आप वास्तव में क्लाइंट-साइड प्रदान करते हैं तो विश्लेषण करने के लिए जावास्क्रिप्ट का उपयोग करने पर विचार करना चाह सकते हैं यदि यह आपके लिए काम नहीं करता है।

+0

धन्यवाद! तुम मेरे नायक हो! – Levitikon

+1

@Levitikon: कोई समस्या नहीं है। (अगर आपके पास कोई अन्य प्रश्न नहीं है तो कृपया इसे समाधान के रूप में चिह्नित करना याद रखें) – StriplingWarrior

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