asp.net-mvc
Delvis utsikt
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")