Sök…


Introduktion

En partiell vy är en vy som återges inom en annan vy. Delvisningar kan återanvändas och därmed förhindra kopiering av kod. De kan återges av Html.Prior eller Html.RenderPrior

Syntax

  • @ Html.Partial ( "ViewName")

    @ Html.Partial ( "ViewName", Viewmodel)

    @ {Html.RenderPartial ( "ViewName");}

    Om din delvisa vy finns i en annan mapp än delad mapp, måste du nämna hela sökvägen enligt nedan:

    [email protected] ( "~ / områden / Admin / Views / Shared / partiell / _subcat.cshtml")

Delvy med modell

En modell kan också läggas till delvisningen:

@model Solution.Project.Namespace.MyModelClass
<p>@Model.Property</p>

I vyn kan du bara använda:

<div>
    @Html.Partial("PartialViewExample", new MyModelClass(){Property="my property value"})  
</div>
<div>
    @{ Html.RenderPartial("PartialViewExample", new MyModelClass(){Property="my property value"}); }  
</div>

Partiell vy till en sträng - för e-postinnehåll osv

Ringer funktionen

string InvoiceHtml = myFunction.RenderPartialViewToString("PartialInvoiceCustomer", ToInvoice); // ToInvoice is a model, you can pass parameters if needed

Funktion för att generera 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();
    }
}

Partiell vy - PartialInvoiceCustomer

@model eDurar.Models.BuyOnlineCartMaster
 <h2>hello customer - @Model.CartID </h2>

Html.Prior Vs Html.RenderPrior

Html.Prior returnerar en sträng å andra sidan Html.RenderPrior returnerar ogiltig.

Html.RenderPartial

Denna metod returnerar ogiltig och resultatet skrivs direkt till HTTP-svarströmmen. Det betyder att det använder samma TextWriter-objekt som används på den aktuella webbsidan / mallen. Av denna anledning är denna metod snabbare än Partiell metod. Den här metoden är användbar när visningen av data i delvisningen redan finns i motsvarande visningsmodell.

Exempel: I en blogg för att visa kommentarer på en artikel vill vi använda RenderPrior-metoden eftersom en artikelinformation med kommentarer redan är befolkad i visningsmodellen.

@{Html.RenderPartial("_Comments");}

Html.Partial

Den här metoden returnerar en HTML-kodad sträng. Detta kan lagras i en variabel. Liksom RenderPrior-metoden är partiell metod också användbar när visningen av data i den partiella vyn redan finns i motsvarande visningsmodell.

Exempel: I en blogg för att visa kommentarer till en artikel kan du använda Partial-metoden eftersom en artikelinformation med kommentarer redan finns i visningsmodellen.

@Html.Partial("_Comments")


Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow