Как ссылаться на глобальное виртуальное включение в MVC? - PullRequest
0 голосов
/ 07 марта 2019

У моей компании есть набор глобальных виртуальных файлов, которые они хотят использовать для внешнего вида сайта.В дни ASP вы должны использовать #include virtual = "etc".Это файлы вне приложения.

В ASP.NET вы можете использовать что-то вроде Response.WriteFile ...

Но если я попробую это в MVC View, я всегда получу содержимоев верхней части страницы, а не там, где я хочу, чтобы она была на своем месте.

Как мне подходить к этому в ASP.NET MVC?

1 Ответ

0 голосов
/ 09 марта 2019

Я действительно заставил это работать.Я ДОЛЖЕН работать с этими старыми виртуальными включениями, у меня не было выбора для компании.

Я сделал это в макете: мне в основном пришлось внедрить включения с помощью Response.WriteFile в место вверх по дереву каталогов.где включены были расположены.Эти списки используются для ВСЕХ веб-сайтов в нашей компании.Затем я использовал StringBuilder для создания содержимого в макете.Мне также пришлось поместить оператор @RenderBody в объект Response.

@using System.Text;
<!DOCTYPE html>
<html>
<head>
   <meta charset="utf-8" />
   <meta name="viewport" content="width=device-width, initial-scale=1.0">
   <meta name="description" content="Software that excels. Training that inspires.   Build your company mobile presence on Android and Apple."/>
   <meta name="title" content="Software that excels.  Training that inspires.  Build your company mobile presence on Android and Apple." />
   <meta name="robots" content="index, follow" />
<meta name="keywords" content="software, training, Android, mobile, iOS, Apple, data, visualization" />    
<title>@ViewBag.Title</title>
@Styles.Render("~/Content/css")
@Scripts.Render("~/bundles/modernizr")
<link rel="icon" href="~/Content/favicon3.ico" type="image/x-icon" />
</head>
<body>
    @{
    Response.Buffer = false;
    Response.BufferOutput = false;
    Response.WriteFile("../../includes/header.inc");

    StringBuilder sb = new StringBuilder(4000);
    sb.Append("<div class=\"container body-content\">");
    sb.Append(@RenderBody());
    sb.Append("<hr />");
    sb.Append("<footer>");
    sb.Append("<p>&copy; @DateTime.Now.Year - Excellor Software</p>");
    sb.Append("</footer>" + "</div>");
    sb.Append("</div>");

    Response.Write(sb.ToString());
    sb.Clear();
    sb = null;
    Response.WriteFile("../../includes/footer.inc");
    }
  </body>
  </html>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...