Back to "Htmx Asp.Net Coren kanssa"

This is a viewer only at the moment see the article on how this works.

To update the preview hit Ctrl-Alt-R (or ⌘-Alt-R on Mac) or Enter to refresh. The Save icon lets you save the markdown file to disk

This is a preview from the server running through my markdig pipeline

ASP.NET HTMX

Htmx Asp.Net Coren kanssa

Thursday, 01 August 2024

Esitys

HTMX-järjestelmän käyttö ASP:n kanssa.NET Core on erinomainen tapa rakentaa dynaamisia web- sovelluksia vähimmäisJavaScriptin avulla.

Se on sitä, mitä minä kutsuin ”'” -hybridiksi ja ”'” -verkkosuunnitteluksi, jossa sivua kuvataan täysin käyttäen serveriä ja sivukoodia sekä HTMX:tä sivun osa-alueiden dynaamiseen päivittämiseen.

Tässä artiklassa teille osoitetaan, miten HTMX:tä voidaan ottaa käyttöön ASP-järjestelmässä.

Edellytykset

HTMX - Htmx on JavaScript-paketti, jonka sisällyttäminen hankkeeseen on helppoa käyttämällä CDN:tä täällä )

<script src="https://unpkg.com/[email protected]" integrity="sha384-QWGpdj554B4ETpJJC9z+ZHJcA/i59TyjxEPXiiUgN2WmTyV5OEZWCD6gQhgkdpB/" crossorigin="anonymous"></script>

Voitte tietenkin myös ladata kopion ja sisällyttää siihen 'käytännöllisesti katsoenM SK1 (tai käyttää LibMania tai npm).

ASP.NET-bitit

Suosittelen myös Htmx Tag Helperin asentamista täällä

Nämä ovat molemmat Khalid Abuhakmeh

dotnet add package Htmx.TagHelpers

Ja Htmx Nuget-paketti täällä

 dotnet add package Htmx

Tag-apuväline antaa teille tehdä tämän:

    <a hx-controller="Blog" hx-action="Show" hx-push-url="true" hx-get hx-target="#contentcontainer" hx-route-slug="@Model.Slug"
        class="block font-body text-lg font-semibold text-primary transition-colors hover:text-green dark:text-white dark:hover:text-secondary">@Model.Title</a>

Vaihtoehtoinen lähestymistapa.

PANEE MERKILLE: Tällä lähestymistavalla on yksi suuri haitta–; se ei tuota href-koodia postlinkille . Tämä on SEO:n ja saatavuuden kannalta ongelmallinen asia. Se tarkoittaa myös sitä, että nämä linkit epäonnistuvat, jos HTMX ei jostakin syystä ladata M SK6 CDN:t menevät alaspäin

Vaihtoehtoinen lähestymistapa on hx-boost="true" attribute ja normal asp.net core tag helpersM SK1 Katso täällä lisätietoa hx-boost (jotta asiakirjat ovat hieman epämääräisiäM SK2 Tämä johtaa normaaliin href-arvoon, mutta HTMX pysäyttää sen ja sisältö laaditaan dynaamisesti.

Näin ollen seuraavasti:

 <a asp-controller="Blog" asp-action="Show" hx-boost="true"  hx-target="#contentcontainer" asp-route-slug="@Model.Slug"
       class="block font-body text-lg font-semibold text-primary transition-colors hover:text-green dark:text-white dark:hover:text-secondary">@Model.Title</a>

Osapuolet

HTMX toimii hyvin osittaisten näkökohtien kanssa. Voitte käyttää HT MX:tä osittaisen näkökohdan laadintamiseen sivustanne konttiin. Tämä on erinomainen tapa ladata sivun osia dynaamisesti ilman, että koko sivu laaditaan uudelleenM SK2

Tässä appissa on kontti Layout.cshtml-fiiliin, johon haluamme laatia osittaisen näkökannan.

    <div class="container mx-auto" id="contentcontainer">
   @RenderBody()

    </div>

Tavallisesti se renderoi server-puolen sisältöä, mutta käyttämällä HTMX-merkinnän avustajaa voimme nähdä kohdennettavan hx-target="#contentcontainer" , jossa laaditaan osittainen kuva konttiin.

Omassa hankkeessamme meillä on BlogView osittainen kuva, jonka haluamme ladata konttiin.

img.png

Sitten meillä on Blog Controllerissa

    [Route("{slug}")]
    [OutputCache(Duration = 3600)]
    public IActionResult Show(string slug)
    {
       var post =  blogService.GetPost(slug);
       if(Request.IsHtmx())
       {
              return PartialView("_PostPartial", post);
       }
       return View("Post", post);
    }

Voitte nähdä, että meillä on HTMX-pyynnön menetelmä.IsHtmx()menetelmä , tämä palaa totuudenmukaiseksi, jos pyynnöstä tulee HT MX-pyynti.

Tämän avulla voimme varmistaa, että myös suorat kysymykset tuetaan vähäisellä todellisella ponnistelulla.

Tässä tapauksessa koko näkemyksemme viittaa tähän osittaiseen

@model Mostlylucid.Models.Blog.BlogPostViewModel

@{
ViewBag.Title = "title";
Layout = "_Layout";
}
<partial name="_PostPartial" model="Model"/>

Näin ollen meillä on nyt erittäin yksinkertainen tapa ladata osittainen kuva sivuamme käyttämällä HTMX.

logo

© 2026 Scott Galloway — Unlicense — All content and source code on this site is free to use, copy, modify, and sell.