Saya mencoba menerapkan sampel ini dan seumur hidup saya tidak dapat membuatnya berfungsi:

https://docs.microsoft.com/en-us/aspnet/core/mvc/views/tag-helpers/authoring?view=aspnetcore-2.2#condition-tag-helper

Apa yang saya lakukan salah?

Saya telah menyalin kode hampir langsung dari sampel, hanya mengubah namespace...

KondisiTagHelper.cs

using Microsoft.AspNetCore.Razor.TagHelpers;

namespace My.TagHelpers
{
    [HtmlTargetElement(Attributes = nameof(Condition))]
    public class ConditionTagHelper : TagHelper
    {
        public bool Condition { get; set; }

        public override void Process(TagHelperContext context, TagHelperOutput output)
        {
            if (!Condition)
                output.SuppressOutput();
        }
    }
}

_ViewImports.cshtml

@using  My.TagHelpers
@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers
@addTagHelper My.TagHelpers.ConditionTagHelper, My.TagHelpers

_Layout.cshtml digunakan, dan merupakan standar dari proyek MVC inti asp.net, Pengontrol Rumah hanya mengembalikan Tampilan dan tampilan hanya berisi ini. Index.cshtml

<div condition="@true">Shown</div>
<div condition="@false">Hidden</div>

Saya berharap hanya kata "Tampil" di layar, namun kedua kata itu muncul.

0
Kevon 8 Agustus 2019, 01:18

1 menjawab

Jawaban Terbaik

File _ViewImports.cshtml Anda salah. Anda sebenarnya tidak mengimpor taghelper ke dalam proyek Anda sehingga tidak sedang dievaluasi. Parameter untuk @addTagHelper adalah

  • Nama lengkap TagHelper untuk ditambahkan (termasuk namespace) atau * untuk semua
  • Nama Majelis tempat TagHelper berada

Jadi, dengan asumsi perakitan Anda disebut My, Anda perlu mengubah baris Anda ke

@addTagHelper My.TagHelpers.ConditionTagHelper, My

Informasi lebih lanjut dapat ditemukan di dokumen resmi

0
Simply Ged 8 Agustus 2019, 01:45