Добавьте тег <b> через скрипт для oocss

Я готовлюсь обновить сайт и думаю об использовании oocss. Я знаю, что есть много смешанных мнений о oocss, но пока это кажется хорошим выбором для моего проекта. Единственное, что мне не нравится в этом, - это использование тегов в HTML для стилизации сложных модулей. Документация oocss гласит, что для вставки этих тегов нужно использовать какие-то сценарии, облегчающие их удаление в будущем, когда они больше не нужны, но в них нет подробностей, как это сделать. Если бы кто-нибудь мог указать мне решение или дополнительную информацию о том, как реализовать это, я был бы признателен за это. Мой сайт написан с asp в C#, и я буду использовать шаблоны бритвы. Я также хотел бы достичь этой серверной части, а не с помощью java-скрипта, если это возможно. Благодарю.

Это пример HTML для сложного модуля:

<div class="mod complex"> 
    <b class="top"><b class="tl"></b><b class="tr"></b></b>
<div class="inner">
    <div class="bd">
        <p>Lorem ipsum.</p>
    </div>
</div>
<b class="bottom"><b class="bl"></b><b class="br"></b></b> 

Благодаря Марку я искал несколько примеров html-помощников и нашел этот пост.

Я немного изменил код, поэтому мой помощник выглядит так:

    public class Complex : IDisposable
{
    private readonly ViewContext _viewContext;
    private bool _disposed = false;

    public Complex(ViewContext viewContext)
    {
        _viewContext = viewContext;
    }

    public void Dispose()
    {
        Dispose(true);
        GC.SuppressFinalize(this);
    }

    protected virtual void Dispose(bool disposing)
    {
        if (!_disposed)
        {
            _disposed = true;
            _viewContext.Writer.Write(
                @"</div>
                    <b class=""bottom""><b class=""bl""></b><b class=""br""></b></b>
                    </div>" 
            );
        }
    }
}

public static class HtmlExtensions
{
    public static Complex Complex(this HtmlHelper htmlHelper)
    {
        htmlHelper.ViewContext.Writer.Write(
            @"<div class=""mod complex"">
                  <b class=""top""><b class=""tl""></b><b class=""tr""></b></b>
                    <div class=""inner"">"
        );
        return new Complex(htmlHelper.ViewContext);
    }
}

И тогда, на мой взгляд, я включил:

    @using (Html.Complex())
{
    <div class="bd">
        <p>Lorem ipsum.</p>
    </div>
}

Но теперь есть ли способ включить класс CSS в представление так, чтобы он был помещен в классы первого div? Извините, если это глупый вопрос, но я очень плохо знаком с C# и MVC в целом. Вот что у меня так далеко:

Я изменил статический класс html.extensions на это:

    public static class HtmlExtensions
{
    public static  Flow Flow(this HtmlHelper htmlHelper, string classname)
    {
        htmlHelper.ViewContext.Writer.Write(@"<div class="" " + classname + @"mod complex flow"">
                  <b class=""top""><b class=""tl""></b><b class=""tr""></b></b>
                    <div class=""inner"">"
        );
        return new Flow(htmlHelper.ViewContext);
    }
}

И я поставил это на мой взгляд:

@using (Html.Flow("bgtest"))
    {
        <div class="bd">
         <div style="height:442px; width:980px; background-color: grey;"></div>
        </div>
    }

Я получаю эту ошибку: CS1501: нет перегрузки для метода "Поток" принимает 0 аргументов.

1 ответ

Я не уверен, есть ли какой-либо открытый исходный код, чтобы помочь вам достичь oocss в ASP.NET MVC или Razor. Я хотел бы предложить создать многократно используемые помощники html, которые визуализируют модули (кнопки, нумерацию страниц и т. Д.), Используя oocss.

Например создать кнопку с помощью oocss. Вы можете иметь отдельный помощник HTML CssButton который отображает контент с ожидаемым html с переданной моделью. Таким образом, вы можете использовать в любом месте в представлениях, как,

@Html.CssButton(model)

Для создания пользовательских помощников HTML

http://www.asp.net/mvc/tutorials/older-versions/views/creating-custom-html-helpers-cs

Даже вы можете обернуть все HTML-помощники, которые отображают модули, в отдельную сборку, чтобы их можно было многократно использовать в разных проектах.

http://blogs.msdn.com/b/davidebb/archive/2010/10/27/turn-your-razor-helpers-into-reusable-libraries.aspx

Другие вопросы по тегам