Замените определенные области HTML частичными представлениями , ASP.NET бритва mvc5
У меня есть столбец базы данных под названием Template, который сохраняет html-контент, exmaple :
Template = "@ section test".
Теперь я пытаюсь заменить этот динамический раздел конкретным частичным представлением :
@model CMSFC.Models.Page @{ Layout = "~/Views/Shared/_Layout.cshtml"; } @{ if (Model.Template != null) { // Response.Write(Model.Template); // Model.Template.Replace("@section test{}",) me partial view per cdo section @Model.Template.Replace("@section test{}",@{ Html.RenderPartial("ViewTest"); } ); @Html.Raw(Model.Template); } } @{ //Html.RenderAction("Test", "Pages"); }
Это частичное представление :
@model IEnumerable<CMSFC.Models.PageConfig> @{ // Layout = "~/Views/Shared/_Layout2.cshtml"; } @foreach (var module in Model) { if (module.Placeholder == "test" && module.PageId == "test") { // Html.RenderAction("NewsList", "ContentHtml") Html.RenderAction(module.Control, "ContentHtml", new { id = module.Content }); // @Html.DisplayFor(modelItem => module.Control) ; } <br /> }
Это контроллер :
public PartialViewResult ViewTest() { return PartialView("ViewTest" , db.PageConfigs.ToList()); }
public ActionResult Details2(int? id) { if (id == null) { return new HttpStatusCodeResult(HttpStatusCode.BadRequest); } Page page = db.Pages.Find(id); if (page == null) { return HttpNotFound(); } // return View(db.PageConfigs.ToList().Where(m => m.PageId == "test").ToList()); return View(page); // return View(page); }
Что я уже пробовал:
---------------------------------------------------
Graeme_Grant
Пожалуйста, перестаньте бросать код в стену, надеясь, что он прилипнет. Почему мы должны все время отлаживать ваш код, если вы сами этого не сделаете? Это называется программированием. Посмотрите это видео: Базовая отладка с помощью Visual Studio 2010-YouTube[^]