HtmlBuilderPack 2.0.0

dotnet add package HtmlBuilderPack --version 2.0.0
                    
NuGet\Install-Package HtmlBuilderPack -Version 2.0.0
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="HtmlBuilderPack" Version="2.0.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="HtmlBuilderPack" Version="2.0.0" />
                    
Directory.Packages.props
<PackageReference Include="HtmlBuilderPack" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add HtmlBuilderPack --version 2.0.0
                    
#r "nuget: HtmlBuilderPack, 2.0.0"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package HtmlBuilderPack@2.0.0
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=HtmlBuilderPack&version=2.0.0
                    
Install as a Cake Addin
#tool nuget:?package=HtmlBuilderPack&version=2.0.0
                    
Install as a Cake Tool

HtmlBuilderPack

You can use this package insted of TagBuilder class in c# for building your html tags faster and esier.

This is an example of how you can use this package

First of all you need to create new instanse of object named HtmlBuilder to go forward and for printing or getting tags as string you simply use name of instanse.

for adding chile to your current tag use can use method named AddChild

HtmlBuilder and HtmlElement

Version 1.0.0 & 2.0.0

using HtmlBuilderPack;

HtmlBuilder builder = new(new("html", null, null, new string[0], null, null, null));

builder.AddChild(new HtmlElement("body", null, null, new string[0], null, null, null));
// or you can use this way

builder.AddChild(new HtmlElement("body", null, null, new string[0], null, null, null))
.AddChild(new HtmlElement("Tag", "Text", "Value", new string[1] { $@"CustomAttribute=""text""" }, "class", "id", "name", true));


// the AddChild method has overload that getting "HtmlBuilder" too

// for example

HtmlBuilder hb = new(new("test", null, null, new string[0], null, null, null));

builder.AddChild(hb);
Console.WriteLine(builder);


List of Arguments

rcord class named HtmlElement takes 8 argument in his constructor.

  1. "Tag name" For example "p" or "select" or any tag u want to add even your custom tag you build using ViewComponents. string
  2. "Text" The text you want to be inside of your tag. string
  3. "Value" Value of tag; for example in input tages you can use this. string
  4. "Attributes" Custom attributes you want to add to tag. string[]
  5. "Class" The class you want to add to tag. string
  6. "Id" The id of element in document. string
  7. "Name" name of tag. string
  8. "SelfCloseTag" is tag is self closed ? bool default value is 'false'

HtmlTableBuilder<T> and HtmlTable<T>

Version 2.0.0

for Creating html table fast and easy with you object list you can use HtmlTableBuilder class to do that here is an example

using HtmlBuilderPack.Attributes;

// example class
internal class Book
{

  // you need to use this attribute to determine name of property in table header
  // if you don't want a property to be in table just remove this attribute and it will be ignored.
  [TableDisplayName("Id of book")]
  public int BookId { get; set; }

  [TableDisplayName("subject")]
  public string Subject { get; set; }

  [TableDisplayName("price")]
  public decimal Price { get; set; }

  public Book(int id, string subject, decimal price)
  {
    BookId = id;
    Subject = subject;
    Price = price;
  }
}

as I said in comment of above code if you want to show your property in table you need to add attribute named TableDisplayName("Name") for using it. else it will be ignored in generating time.

for creating table whenever you want you can use this way:

using HtmlBuilderPack;

List<Book> books = new()
{
  new(1, "Test1", 10),
  new(2, "Test1", 10),
  new(3, "Test1", 10),
};

HtmlTableBuilder<Book> htb = HtmlTableBuilder<Book>.Init(books);

Console.WriteLine(htb);

here is an example of what we get as string to view:

<table >
  <thead>
    <tr>
      <th>
        Id of book
      </th>
      <th>
        subject
      </th>
      <th>
        price
      </th>
    </tr>
  </thead>
  <tbody>
      <tr>
        <td>
          1
        </td>
        <td>
          Test1
        </td>
        <td>
          10
        </td>
      <tr>
      <tr>
        <td>
          2
        </td>
        <td>
          Test1
        </td>
        <td>
          10
        </td>
      <tr>
      <tr>
        <td>
          3
        </td>
        <td>
          Test1
        </td>
        <td>
          10
        </td>
      <tr>
  </tbody>
</table>

if you want to add class or some attribute to your table you can use this waies:

HtmlTableBuilder<Book> htb = HtmlTableBuilder<Book>.Init(books, "class", "id", "value", "name",
 new string[1]{ $@"CustomAttribute=""test""" });

so if we run this command we will get this result:

<table class="class" id="id" value="value" name="name" CustomAttribute="test">
  <thead>
    <tr>
      <th>
        Id of book
      </th>
      <th>
        subject
      </th>
      <th>
        price
      </th>
    </tr>
  </thead>
  <tbody>
      <tr>
        <td>
          1
        </td>
        <td>
          Test1
        </td>
        <td>
          10
        </td>
      <tr>
      <tr>
        <td>
          2
        </td>
        <td>
          Test1
        </td>
        <td>
          10
        </td>
      <tr>
      <tr>
        <td>
          3
        </td>
        <td>
          Test1
        </td>
        <td>
          10
        </td>
      <tr>
  </tbody>
</table>

you can even use constructor to create new instance of HtmlTableBuilder<T> class; witch is has two constructor

  1. Takes just list of object you want to create table of it
  2. Takes class named HtmlTable<T>

note that HtmlTable<T> class has two constructor too.

  1. Takes only list of object you want to create table of it.

  2. Takes list of object you want to create table of it and five other arguments that I named below.

    2.1. List<T> objects list of objects.

    2.2. string cssClass css classes.

    2.3. string id id of element in page.

    2.4. string name name of element in page.

    2.5. string value value of element in page.

    2.6. string[] attributes custom attributes you want to add to table.

Product Compatible and additional computed target framework versions.
.NET net6.0 is compatible.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 was computed.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 was computed.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 was computed.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 was computed.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
  • net6.0

    • No dependencies.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
2.0.0 243 7/28/2023
1.0.0 191 7/27/2023