ddgjgj Ответов: 1

Ввод контента в определенные разделы - ASP.NET MVC5


У меня есть столбец базы данных под названием Template, который сохраняет этот html-контент :
"
@section test{}
<div class="row" style="width:800px; margin:0 auto;">
    <div class="col-md-4" style="width:800px; margin:0 auto;">
        <div>1</div>
        <div>2</div>
        <div>3</div>
        <div>4</div>
    </div>

  

</div>

<div class="row" style="width:800px; margin:0 auto;">
    <div class="col-md-4" style="width:800px; margin:0 auto;">
        <div>5</div>
        <div>6</div>
        <div>7</div>
        <div>8</div>
    </div>



</div>
"



Это представление, которое читает и переводит этот html :

@model CMSFC.Models.Page

@{

     Layout = "~/Views/Shared/_Layout.cshtml";
  
}


 @section test{
    <p>section test </p>
    }


        @{

            if (Model.Template != null)
            {
                // Response.Write(Model.Template);
                @Html.Raw(Model.Template)


            }





        }






И это вид макета :

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>@ViewBag.Title - My ASP.NET Application</title>
    @Styles.Render("~/Content/css")
    @Scripts.Render("~/bundles/modernizr")

</head>
<body>




    <div class="navbar navbar-inverse navbar-fixed-top">
        <div class="container">
            <div class="navbar-header">
                <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
                    <span class="icon-bar"></span>
                    <span class="icon-bar"></span>
                    <span class="icon-bar"></span>
                </button>
                @*   @Html.ActionLink("Application name", "Index", "Home", new { area = "" }, new { @class = "navbar-brand" })*@
            </div>
            <div class="navbar-collapse collapse">
                <ul class="nav navbar-nav">
                    <li>@Html.ActionLink("Index", "Index", "Home")</li>
                    <li>@Html.ActionLink("About", "About", "Home")</li>
                    <li>@Html.ActionLink("Contact", "Contact", "Home")</li>
                    <li>@Html.ActionLink("News", "Index", "ContentHtml")</li>
                    @if (User.Identity.IsAuthenticated)
                    {
                        if (User.IsInRole("Admin") || User.IsInRole("Guest"))
                        {
                            <li>@Html.ActionLink("PageConfig", "Index", "PageConfigs")</li>
                            <li>@Html.ActionLink("Pages", "Index", "Pages")</li>


                        }
                    }


                </ul>

                @Html.Partial("_LoginPartial")
            </div>
        </div>
    </div>




 @*   <div id="test">
        @if (IsSectionDefined("test"))
        {
            @RenderSection("test")
        }

    </div>*@



    <div class="container body-content">
        @RenderBody()
        <hr />
        <footer>
            <p></p>
        </footer>
    </div>

    @Scripts.Render("~/bundles/jquery")
    @Scripts.Render("~/bundles/bootstrap")
    @RenderSection("scripts", required: false)
</body>

</html>



Чего я хочу, так это того, что ценность
@section test{
   <p>section test </p>
   }
,
так что этот абзац нужно показать изнутри определенный раздел теста в шаблон столбца содержание :


@section test{}
<div class="row" style="width:800px; margin:0 auto;">
    <div class="col-md-4" style="width:800px; margin:0 auto;">
        <div>1</div>
        <div>2</div>
        <div>3</div>
        <div>4</div>
    </div>



И тогда получите такой результат :

тестовый раздел
1
2
3
4
5
6
7
8

Что я уже пробовал:

------------------------------------------------

1 Ответов

Рейтинг:
1

Cristian Mayo

Я в основном использовал @section для инъекции клиентских технологий, но рассматривали ли вы возможность использования частичных представлений?

если нет, вы можете посетить здесь для представлений и рендеринга пользовательского интерфейса в ASP.NET приложения MVC.

^_^


ddgjgj

Я использую частичные представления с другим классом модели , и они вызывают эту ошибку :

Элемент модели, передаваемый в словарь, имеет тип ' CMSFC.Модели.Страница", но для этого словаря требуется модельный элемент типа "система".Коллекции.Общий.IEnumerable`1[CMSFC.Модели.PageConfig]'. RSS

Cristian Mayo

Ой! Моя вина. Я предположил, что вы передаете модель / значения на частичном. В качестве альтернативы вы можете использовать: @Html. Partial("_PartialContent")

.. вы можете сослаться на несколько примеров по этой ссылке: https://docs.microsoft.com/en-us/aspnet/core/mvc/views/partial

ddgjgj

я так и сделал, но все равно так же.