Код JavaScript запускается до того, как Razor заканчивает рендеринг HTML-элементов. - PullRequest
0 голосов
/ 17 апреля 2019

Я могу ошибаться, если в названии сделана неверная предпосылка. Сценарий таков: я хочу создать помощника по тегам, чтобы заменить уродливый атрибут form.

<form method="post" class="form-horizontal">
    <card-body>
        <mlf-input field="Item.Nome" />
        <mlf-textarea field="Item.Observacao" />
    </card-body>

    <partial name="CrudCreateFooter" />
</form>

Конечный результат, который я хочу, это:

<mlf-form>
    <card-body>
        <mlf-input field="Item.Nome" />
        <mlf-textarea field="Item.Observacao" />
    </card-body>

    <partial name="CrudCreateFooter" />
</mlf-form>

Это помощник по тегам, который я написал:

public class MlfFormTagHelper : TagHelper {
    public override void Process(TagHelperContext context, TagHelperOutput output) {
        output.PreContent.SetHtmlContent(@"<form method='post' class='form-horizontal'>");
        output.PostContent.SetHtmlContent("</form>");
    }
}

Веб-страница отображается правильно, но плагин jquery.validate.unobtrusive.js, похоже, запускается до отображения элемента HTML form, поэтому мои поля не проходят проверку на стороне клиента. Есть ли способ указать в определении помощника по тегам для рендеринга HTML перед выполнением кода javascript - или для обеспечения того, чтобы код JavaScript выполнялся только тогда, когда генерируется весь HTML от Razor?

...