我有如下内容:
HTML
<select asp-for="MyField" asp-items="MyItems" security-can-edit="@await DoIHaveAccess(MyEnum.Something)">
</select>
C#
public async Task<bool> DoIHaveAccess(MyEnum item) {
bool hasAccess = false;
{ ... some code }
return hasAccess;
}
TagHelper
public override async Task ProcessAsync(TagHelperContext context, TagHelperOutput output) {
await base.ProcessAsync(context, output);
if(Boolean.TryParse(context.AllAttributes["security-can-edit"].Value.ToString(), out bool canEdit) && !canEdit) {
}
}
当我在IF语句的TagHelper中放置一个调试点时,系统告诉我“ security-can-edit”属性的值是文字文本“ security-can-edit”。如果删除等待,则属性为我的System.Threading.Tasks.Task`1 [System.Boolean]。
如何获取剃须刀代码以评估该方法并传递是非值?