Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk Membuat Pandangan sebagai Rentetan dalam Teras .NET?
Kembalikan Paparan sebagai Rentetan dalam Teras .NET
Masalah:
Banyak artikel yang tersedia menyediakan panduan untuk memberikan pandangan kepada rentetan dalam ASP.NET, tetapi tidak khusus untuk Teras .NET. Pelaksanaan Teras .NET mencetuskan ralat penyusunan walaupun terdapat percubaan pada penukaran.
Menggunakan Penyata:
Untuk menangani isu ini, penyataan menggunakan berikut diperlukan:
using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc.Rendering; using Microsoft.AspNetCore.Mvc.ViewEngines; using Microsoft.AspNetCore.Mvc.ViewFeatures; using System.IO; using System.Threading.Tasks;
Ketergantungan Project.json:
The kebergantungan project.json yang sepadan ialah:
{ "dependencies": { "Microsoft.AspNetCore.Mvc": "1.1.0", ... }, }
Kaedah Sambungan Pengawal:
Kaedah sambungan berikut boleh dilaksanakan untuk memaparkan paparan sebagai rentetan dalam Teras .NET:
public static async Task<string> RenderViewAsync<TModel>(this Controller controller, string viewName, TModel model, bool partial = false) { if (string.IsNullOrEmpty(viewName)) { viewName = controller.ControllerContext.ActionDescriptor.ActionName; } controller.ViewData.Model = model; using (var writer = new StringWriter()) { IViewEngine viewEngine = controller.HttpContext.RequestServices.GetService(typeof(ICompositeViewEngine)) as ICompositeViewEngine; ViewEngineResult viewResult = viewEngine.FindView(controller.ControllerContext, viewName, !partial); if (viewResult.Success == false) { return $"A view with the name {viewName} could not be found"; } ViewContext viewContext = new ViewContext( controller.ControllerContext, viewResult.View, controller.ViewData, controller.TempData, writer, new HtmlHelperOptions() ); await viewResult.View.RenderAsync(viewContext); return writer.GetStringBuilder().ToString(); } }
Contoh Penggunaan:
The kaedah sambungan boleh digunakan dari dalam pengawal menggunakan sintaks berikut:
viewHtml = await this.RenderViewAsync("Report", model);
Untuk paparan separa:
partialViewHtml = await this.RenderViewAsync("Report", model, true);
Penyelesaian ini menyediakan penaipan yang kuat untuk model, pengendalian ralat apabila mencari pandangan dan operasi tak segerak.
Atas ialah kandungan terperinci Bagaimana untuk Membuat Pandangan sebagai Rentetan dalam Teras .NET?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!