asp.net-mvc
आंशिक दृश्य
खोज…
परिचय
आंशिक दृश्य एक ऐसा दृश्य है जिसे किसी अन्य दृश्य के भीतर प्रस्तुत किया जाता है। आंशिक विचारों का पुन: उपयोग किया जा सकता है और इस प्रकार कोड के दोहराव को रोका जा सकता है। उन्हें Html.Partial या Html.RenderPartial द्वारा प्रस्तुत किया जा सकता है
वाक्य - विन्यास
@ Html.Partial ( "VIEWNAME")
@ Html.Partial ( "VIEWNAME", ViewModel)
@ {Html.RenderPartial ( "VIEWNAME");}
यदि आपका आंशिक दृश्य साझा किए गए फ़ोल्डर के अलावा किसी अन्य फ़ोल्डर में स्थित है, तो आपको नीचे दिए गए दृश्य के पूर्ण पथ का उल्लेख करना होगा:
[email protected] ( "~ / क्षेत्रों / व्यवस्थापक / दृश्य / साझा / आंशिक / _subcat.cshtml")
मॉडल के साथ आंशिक दृश्य
एक मॉडल को आंशिक दृश्य में भी जोड़ा जा सकता है:
@model Solution.Project.Namespace.MyModelClass
<p>@Model.Property</p>
दृश्य में अब आप केवल उपयोग कर सकते हैं:
<div>
@Html.Partial("PartialViewExample", new MyModelClass(){Property="my property value"})
</div>
<div>
@{ Html.RenderPartial("PartialViewExample", new MyModelClass(){Property="my property value"}); }
</div>
एक स्ट्रिंग के लिए आंशिक दृश्य - ईमेल सामग्री आदि के लिए
फ़ंक्शन को कॉल करना
string InvoiceHtml = myFunction.RenderPartialViewToString("PartialInvoiceCustomer", ToInvoice); // ToInvoice is a model, you can pass parameters if needed
HTML उत्पन्न करने का कार्य
public static string RenderPartialViewToString(string viewName, object model)
{
using (var sw = new StringWriter())
{
BuyOnlineController controller = new BuyOnlineController(); // instance of the required controller (you can pass this as a argument if needed)
// Create an MVC Controller Context
var wrapper = new HttpContextWrapper(System.Web.HttpContext.Current);
RouteData routeData = new RouteData();
routeData.Values.Add("controller", controller.GetType().Name.ToLower().Replace("controller", ""));
controller.ControllerContext = new ControllerContext(wrapper, routeData, controller);
controller.ViewData.Model = model;
var viewResult = ViewEngines.Engines.FindPartialView(controller.ControllerContext, viewName);
var viewContext = new ViewContext(controller.ControllerContext, viewResult.View, controller.ViewData, controller.TempData, sw);
viewResult.View.Render(viewContext, sw);
return sw.ToString();
}
}
आंशिक दृश्य - PartialInvoiceCustomer
@model eDurar.Models.BuyOnlineCartMaster
<h2>hello customer - @Model.CartID </h2>
Html.Partial बनाम Html.RenderPartial
Html.Partial दूसरे हाथ पर एक स्ट्रिंग देता है। Html.RenderPartial शून्य देता है।
Html.RenderPartial
यह विधि शून्य हो जाती है और परिणाम सीधे HTTP प्रतिक्रिया स्ट्रीम में लिखा जाता है। इसका मतलब है कि यह उसी वेबवॉटर का उपयोग करता है जो वर्तमान वेबपेज / टेम्पलेट में उपयोग किया जाता है। इस कारण से, यह विधि आंशिक विधि से अधिक तेज़ है। यह विधि तब उपयोगी होती है जब आंशिक दृश्य में प्रदर्शित डेटा पहले से ही संगत दृश्य मॉडल में होता है।
उदाहरण: एक लेख की टिप्पणियों को दिखाने के लिए एक ब्लॉग में, हम RenderPartial पद्धति का उपयोग करना चाहते हैं क्योंकि टिप्पणियों के साथ एक लेख जानकारी पहले से ही दृश्य मॉडल में आबादी है।
@{Html.RenderPartial("_Comments");}
Html.Partial
यह विधि HTML-एन्कोडेड स्ट्रिंग लौटाती है। यह एक चर में संग्रहीत किया जा सकता है। RenderPartial पद्धति की तरह, आंशिक विधि भी उपयोगी होती है जब आंशिक दृश्य में प्रदर्शित डेटा पहले से ही संबंधित दृश्य मॉडल में होता है।
उदाहरण: एक लेख की टिप्पणियों को दिखाने के लिए एक ब्लॉग में, आप आंशिक पद्धति का उपयोग कर सकते हैं क्योंकि टिप्पणियों के साथ एक लेख जानकारी पहले से ही दृश्य मॉडल में आबादी है।
@Html.Partial("_Comments")