asp.net mvc - एचटीएमएल में मॉडल ऑब्जेक्ट कैसे भेजें। रेंडरएक्शन(एमवीसी 3)




asp.net-mvc asp.net-mvc-3 (2)

आप वास्तव में एक्शन का उपयोग कर एक ऑब्जेक्ट को नियंत्रक विधि में पास कर सकते हैं। यह किसी भी avaialble दृश्य पर किया जा सकता है, उदाहरण के लिए मेरे पास एक साझा लाइब्रेरी में से एक है जो प्रोजेक्ट बिन फ़ोल्डरों के लिए बनाया गया है जो मेरे साझा प्रोजेक्ट (गुण - दृश्य विंडो पर नया दृश्य, दृश्य स्टूडियो में) का संदर्भ देता है। ऐसा ऐसा किया जाता है:

नियंत्रक:

public class GroovyController : Controller
{
    public ActionResult MyTestView(MyModel m)
    {
        var viewPath = @"~\bin\CommonViews\MyTestView";
        return View(viewPath, m);
    }
}

एमवीसी पेज (रेजर सिंटैक्स का उपयोग करके):

@Html.Action("MyTestView", "Groovy", new { m = Model })

या RenderAction विधि का उपयोग कर:

@{ Html.RenderAction("MyTestAction", "MyTestController", new { area = "area", m = Model }); }

नोट: @Html.Action() , Model ऑब्जेक्ट MyModel प्रकार का होना चाहिए और वह तीसरा पैरामीटर नियंत्रक परिवर्तनीय नाम पर सेट होना चाहिए, जिसमें से मेरा MyModel mm वह है जिसे आपको असाइन करना होगा, इसलिए मैं m = Model करता हूं।

मैं एमवीसी 3 रेज़र का उपयोग कर रहा हूं, और मैं ऑब्जेक्ट को आंशिक दृश्य में पास करने की कोशिश कर रहा हूं, और यह काम नहीं कर रहा है।

ऑब्जेक्ट मॉडल को आंशिक दृश्य में भेजने के बिना यह ठीक काम करता है:

Html.RenderAction("Index", "ViewName");

इसे आज़माने से मॉडल ऑब्जेक्ट नहीं भेजा गया है, मुझे इसके बजाय नलियां मिल रही हैं (ऑब्जेक्ट में डेटा है, और दृश्य इसकी अपेक्षा करता है): '

Html.RenderAction("Index", "ViewName", objectModel);

क्या यह रेंडरएक्शन का उपयोग करके भी संभव है?

धन्यवाद!

संपादित करें: मुझे त्रुटि मिली, नियंत्रक की कार्रवाई में कोई त्रुटि हुई जिसने प्रेषित ऑब्जेक्ट नहीं उठाया। आपकी सभी मदद का धन्यवाद!


आम तौर पर यदि मेरे पास पहले से ही एक मॉडल उपलब्ध है तो यह एक क्रिया प्रस्तुत करने की कोशिश करने से Html.Partial का उपयोग करने के लिए और अधिक समझ में आता है।

@Html.Partial("Foo", Model.FooModel)

जहां Foo.cshtml एक व्यू फ़ाइल (शायद आपके साझा फ़ोल्डर में) दृढ़ता से @model FooProject.Models.FooModel या जो भी आपका मॉडल कहलाता है, के साथ टाइप किया गया है। यह उतना जटिल मॉडल हो सकता है जितना आपको इसकी आवश्यकता है। मॉडल आपके पृष्ठ का मुख्य मॉडल है जिसमें आपको FooModel सेट करना होगा - या केवल इस पैरामीटर को छोड़ दें यदि Foo व्यू मूल पृष्ठ के समान मॉडल का उपयोग करता है।

जब आपके पास केवल साधारण पैरामीटर होते हैं तो RenderAction आमतौर पर बेहतर होता है, क्योंकि आप नियमित कार्रवाई के अनुरोध को अनुकरण कर रहे हैं जिसमें रूटिंग / क्वेरी स्ट्रिंग पैरामीटर हैं - और उसके बाद उस पृष्ठ को उस प्रतिक्रिया को डंप करना। यह अच्छी तरह से काम करता है यदि आपको ऐसे लेआउट में कुछ डालना है जो आपके पृष्ठ के मॉडल में उपलब्ध नहीं है जैसे कि साइड बार में तत्व।





asp.net-mvc-partialview