2013-07-26 7 views
19

शीर्षक राज्यों के रूप में, मैं आंशिक दृश्य में एक अनुभाग को परिभाषित करना चाहता हूं।आंशिक दृश्य में एएसपी एमवीसी परिभाषित अनुभाग

नियंत्रक::

public ActionResult Test() 
{ 
    return View(); 
} 

public ActionResult PartialTest() 
{ 
    return PartialView("_PartialTest"); 
} 

Test.cshtml:

@{ 
    ViewBag.Title = "Test"; 
} 

<h2>Test</h2> 

@Html.Action("PartialTest") 

_PartialTest.cshtml: इस प्रकार

मेरे कोड है कि मैं के साथ परीक्षण किया है कर रहे हैं

<p>partial Test</p> 

@section scripts { 
    <script type="text/javascript"> 
     $(document).ready(function() { 
      alert("Test"); 
     }); 
    </script> 
} 

अनुभाग 012 रखकर Test.cshtml मेंठीक काम करता है इसलिए समस्या लेआउट में नहीं है।

कोई भी यह कैसे जानता है?

+0

हाँ धन्यवाद जो मैं देख रहा था :) –

+0

ऐसा लगता है कि यह मेरे लिए चाल है: http://stackoverflow.com/questions/7556400/injecting-content-into- विशिष्ट- अनुभाग-from-a -partial-view-asp-net-mvc-3-# 15971504 – Schalk

उत्तर

33

आंशिक विचार @section टैग का समर्थन नहीं करते हैं। आपको उन्हें उस दृश्य में जोड़ना चाहिए जो आंशिक दृश्य का संदर्भ देता है। अधिक जानकारी के लिए यह प्रश्न देखें: Injecting content into specific sections from a partial view ASP.NET MVC 3 with Razor View Engine

यह मूल रूप से इस तथ्य के नीचे आता है कि आंशिक संदर्भ में मुख्य दृश्य जावास्क्रिप्ट को शामिल करने के लिए ज़िम्मेदार होना चाहिए, न कि आंशिक दृश्य स्वयं।

+19

के साथ हालांकि यह प्रश्न का उत्तर है (कि यह समर्थित नहीं है), यह सवाल पूछता है, आंशिक विचार इतने सीमित क्यों हैं? कुछ अनुप्रयोगों में, आप आंशिक दृश्य का उपयोग करने के बजाय "विजेट" बनाने और "विजेट" बनाने का अन्य तरीका बनाने की क्षमता चाहते हैं? इस तथ्य को छोड़कर कि यह बहुत सीमित है और यह इसके मूल दृष्टिकोण पर निर्भर है जो पूरी तरह से उद्देश्य को हरा देता है। क्या एमवीसी रेज़र में उपयोगकर्ता नियंत्रण (वेब ​​फॉर्म) के बराबर है? – Keith

+0

मुझे पता है कि यह एक पुराना सवाल है, लेकिन मैं इस समाधान को हल करने की कोशिश कर रहा हूं: इसे 'विजेट' विशिष्ट स्क्रिप्ट/jquery को उस दृश्य में शामिल करना चाहते हैं जिसमें इसे प्रस्तुत किया गया है? किसी को भी अच्छा समाधान मिला है? –

+0

किसी भी प्रकार के स्क्रिप्ट मैनेजर/एक्सटेंशन को लिखना बहुत आसान होगा जिसे आप किसी भी मॉड्यूल से कॉल कर सकते हैं और उसके बाद अपने माता-पिता/मास्टर व्यू पर स्क्रिप्ट टैग के अद्वितीय/विशिष्ट सेट प्रिंट करने के लिए एक तरीका है। –

5

मैं इस सवाल का पता सुपर बाहर दिनांकित है, लेकिन वहाँ किसी के लिए भी है जो अभी भी सोच सकता है (के रूप में मैं था):

आप वास्तव में करने के लिए अपने आंशिक दृश्य में @section scripts { } भाग बदलकर इस समस्या को हल प्राप्त कर सकते हैं इस:

@using (Html.BeginScriptContext()) 
{ 
    Html.AddScriptBlock(
     @<script type="text/javascript"> 
     //rest of script 
    ); 
} 

यह आपको अपनी आंशिक दृश्य में एक स्क्रिप्ट है और वह विजेट की तरह संरचना को प्राप्त करने की अनुमति देगा। उम्मीद है की यह मदद करेगा!

+0

मुझे लगता है कि यह किसी तृतीय-पक्ष पैकेज ForLoop.HtmlHelpers (https://www.nuget.org/packages/Forloop.HtmlHelpers/) द्वारा प्रदान की गई कार्यक्षमता का जिक्र कर रहा है। –

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