VB.net передает значения grid-template-area и grid-template-columns через ViewBag на сайте MVC - PullRequest
0 голосов
/ 08 сентября 2018

У меня есть зародышевый сайт, использующий VB.net MVC 5, и на странице _layout у меня есть основная структура (заголовок, навигация, нижний колонтитул и т. Д.). Тег также находится на странице макета, и единственное, что находится на страницах просмотра, это HTML-текст тела. Я использую сетку, чтобы упорядочить элементы моего контента, и я пытаюсь выяснить, как установить значения grid-template-area и grid-template-columns для каждой страницы. В настоящее время на странице макета содержатся следующие стили.

<style>
    .cc-grid {
        grid-template-columns: 50% 50%;
        grid-template-areas: 'cap1 cap1' 'cap2 cap3' 'cap4 cap3';

    }
</style>

Я пытался использовать параметр viewBag для передачи строки областей шаблона сетки ('cap1 cap1' 'cap2 cap3' 'cap4 cap3') в качестве свойства, как показано ниже:

grid-template-areas: @ViewBag.Areas;

и затем в фактическом контенте присвойте значение, используя:

@ViewBag.Areas = "'cap1 cap1' 'cap2 cap3' 'cap4 cap3'"

Значение строки передается (я проверил, поместив @ ViewBag.Areas в теги

, и он действительно отобразил правильную строку. Похоже, это проблема с отображением значения в CSS.

Если невозможно использовать ViewBag в CSS, какой лучший способ установить этот тип атрибута для каждой страницы отдельно от страницы макета?

Когда я проверяю страницу в Edge, она выглядит так:

grid-template-areas: &#39;cap1 cap1&#39; &#39;cap2 cap3&#39; &#39;cap4 cap3&#39;;

Похоже, что одинарные кавычки отображаются как & # 39.

Заранее спасибо,

Терри

1 Ответ

0 голосов
/ 08 сентября 2018

Благодаря этому ответу:

Символы Javascript, Razor и Escape.Как и апостроф

В основном мне пришлось использовать html.raw так:

ViewBag.Areas = Html.Raw("'cap1 cap1' 'cap2 cap3' 'cap4 cap3'")
...