When a component has markup that includes event handlers, Htmxor needs to be able unambiguously identify which event handler to invoke., e.g.:
These two are unambiguous because they reference the
same event handler method even though their hx-get attribute
has the same value.
<div hx-get="/" @hxget=@HandleGet />
<div hx-get="/" @hxget=@HandleGet />
These two are ambiguous because the event handlers (lambda)
are distinct and they share the same hx-get value.
Will cause Htmxor to throw.
<div hx-get="/page" @hxget=(() => {}) />
<div hx-get="/page" @hxget=(() => {}) />
These two are unambiguous because they reference
distinct event handlers and their hx-get attribute are different.
<div hx-get="/page2" @hxget=(() => {}) />
<div hx-get="/page3" @hxget=(() => {}) />
@code {
private void HandleGet(HtmxEventArgs args) { }
}
This works as illustrated above, i.e. based on the hx-ACTION's attribute value. However, this could be extended to include other unique attributes on the element the handler is attached to, e.g.:
ID of the element. These are expected to be unique.
Value passed to @key Blazor attribute. This is expected to be unique.
A fallback, e.g. custom hx-ACTION-key attribute.
This avoids users having to custom query parameter on their action URLs.
When a component has markup that includes event handlers, Htmxor needs to be able unambiguously identify which event handler to invoke., e.g.:
This works as illustrated above, i.e. based on the hx-ACTION's attribute value. However, this could be extended to include other unique attributes on the element the handler is attached to, e.g.:
@key
Blazor attribute. This is expected to be unique.hx-ACTION-key
attribute.This avoids users having to custom query parameter on their action URLs.