Declare MetaFields and every pending queue row renders an inline input per field. Values travel to the server automatically as a metadata form field and an X-Upload-Meta base64-JSON header. Fields marked required block that file’s upload until filled. Image files in the thumbnail grid get a ✎ button that opens a modal editor instead.
What you should see: every queued file gets Caption and Category inputs. Uploading with Category empty is blocked with a message; fill it in and retry to complete.
Drag & drop files here, or paste from clipboard
<au:AjaxFileUpload ID="Uploader1" runat="server"
AllowMultiple="true"
AutoUpload="false"
MetaFields='[{"id":"caption","label":"Caption"},
{"id":"category","label":"Category","required":true}]'
OnClientMetaChange="metaChanged" />