Я создал помощник тега для выбранных элементов в своем веб-приложении:
[HtmlTargetElement( "select", Attributes = nameof( AutoPostBack ) )]
public class AutoPostBackTagHelper : TagHelper
{
public bool AutoPostBack { get; set; }
public override void Process( TagHelperContext context, TagHelperOutput output )
{
// AutoPostBack is always false
if ( AutoPostBack )
{
output.Attributes.SetAttribute( "onchange", "this.form.submit();" );
}
// here I could extract the attribute
Microsoft.AspNetCore.Html.HtmlString x =
(Microsoft.AspNetCore.Html.HtmlString)context.AllAttributes[nameof( AutoPostBack )].Value;
// and this is working
if ( x.Value == "true" )
{
output.Attributes.SetAttribute( "onchange", "this.form.submit();" );
}
}
}
Вот пример использования в моем представлении:
<select asp-for="MessageType"
asp-items="Html.GetEnumSelectList<MyViewModels.MessageType>()"
class="form-control" AutoPostBack="true">
</select>
Я хочу использовать это условие как оно рекомендуется через определенный атрибут AutoPostBack . Почему атрибут всегда ложный?