Net Core: возможно ли объединить атрибуты стиля TagBuilder с файлами CSS? - PullRequest
0 голосов
/ 10 июля 2019

Возможно ли объединить атрибуты стиля из Tagbuilder с атрибутами стиля из файлов CSS / SCSS? Похоже, что Tag Builder полностью удаляет мои атрибуты в файлах SCSS. В приведенном ниже примере ширина только следующая от Tag Builder и игнорирует цвет фона моих других CSS-файлов.

test.MergeAttribute(
  "style", "width: " + CarouselWidth + @"px;  
  height:" + CarouselWidth + "px; height: 100%;"
);

.test {
  background-color:green
}

1 Ответ

1 голос
/ 11 июля 2019

TagBuilder здесь, чтобы помочь вам построить элемент HTML немного легко без объединения строк. Если вы понимаете, что вы создаете элемент с нуля. Это означает, что если вы не объедините атрибут с именем «background-color» в компоновщик тегов, у него не будет атрибута с именем «background-color».

Следующий код должен также установить атрибут "background-color":

using Microsoft.AspNetCore.Mvc.Rendering;
using Microsoft.AspNetCore.Razor.TagHelpers;

namespace DL.SO.Framework.Mvc.TagHelpers
{
    public class TestTagHelper : TagHelper
    {
        public override void Process(TagHelperContext context, TagHelperOutput output)
        {
            int carouselWidth = 300;

            TagBuilder div = new TagBuilder("div");

            div.MergeAttribute(
                "style", 
                $"width: { carouselWidth }px; height: { carouselWidth }px; background-color: green;");

            output.Content.SetHtmlContent(div);
        }
    }
}

enter image description here


Поскольку ваш пост неясен, исходя из вашего «кода», я думаю, вам также следует установить атрибут class, чтобы можно было применить ваш стиль.

int carouselWidth = 300;

TagBuilder div = new TagBuilder("div");

div.MergeAttribute(
    "style", 
    $"width: { carouselWidth }px; height: { carouselWidth }px;");

div.MergeAttribute(
    "class", 
    "test");

enter image description here

...