Aspnetcore: ViewComponentTagHelper: Izinkan parameter opsional

Dibuat pada 28 Apr 2017  ·  31Komentar  ·  Sumber: dotnet/aspnetcore

Katakanlah kita memiliki kelas ViewComponent

C# class MyViewComponent { IViewComponentResult Invoke( bool showSomething = false ) { ... } }

Akan sangat bagus untuk hanya menulis <vc:my /> di Razor jika seseorang tidak ingin menunjukkan sesuatu itu. Saat ini Anda harus menulis <vc:my show-something="false" /> .

affected-medium area-mvc enhancement feature feature-razor-pages severity-major

Komentar yang paling membantu

Saya percaya itu harus ditandai sebagai bug .

Ini bekerja:

<strong i="8">@await</strong> Component.Invoke(typeof(MyViewComponent));

Ini tidak bekerja

<vc:My />

Ini adalah perilaku yang diharapkan dan karena Anda tidak menunjukkan peringatan, kesalahan, pesan debug, tidak ada apa-apa, itu membuat banyak orang bertanya-tanya mengapa komponen tampilan tidak ditampilkan

Semua 31 komentar

Sepakat. Tidak tahu seberapa layak itu, tapi saya setuju dengan sentimen :senyum:

Ini tampaknya cukup layak. Kita perlu mengajarkan kode ini tentang nilai default. Saat ini dikatakan bahwa setiap parameter adalah atribut yang diperlukan

@rynowak kandidat untuk preview2?

Aku akan memindahkannya dan menandainya untuk diperebutkan. Pada titik ini mengunci API publik kami dan menyelesaikan cerita perkakas perlu diprioritaskan.

Sangat menantikan perbaikan ini. Seperti yang terjadi, menggunakan pembantu tag VC sangat berbahaya. Tambahkan parameter baru ke tag helper yang ada dan banyak digunakan dan lewatkan pembaruan salah satu tempat yang disebut dan _diam-diam gagal saat memancarkan markup sisi server ke browser_. Saya kira kita terlalu jauh sekarang untuk mencapai 2.0.0?

Ini tidak akan berhasil untuk 2.0.0. Kami tidak punya waktu untuk memperbarui perkakas pada saat ini.

Saya percaya itu harus ditandai sebagai bug .

Ini bekerja:

<strong i="8">@await</strong> Component.Invoke(typeof(MyViewComponent));

Ini tidak bekerja

<vc:My />

Ini adalah perilaku yang diharapkan dan karena Anda tidak menunjukkan peringatan, kesalahan, pesan debug, tidak ada apa-apa, itu membuat banyak orang bertanya-tanya mengapa komponen tampilan tidak ditampilkan

Jadi apakah ini akan masuk ke rilis berikutnya?

Mencari pembaruan tentang masalah ini. Apakah ini akan ditambahkan dalam waktu dekat? Agak frustasi satu untuk menangani.

Datang ke sini untuk mengatakan hal yang sama setelah menemukan masalah ini dan meluangkan waktu untuk melacak mengapa tag helper saya yang disebut VC tidak menampilkan hasil apa pun.

Hai @rynowak :

Saya pikir saya akan mencobanya dan setelah membaca kode sumber di sini (tautan Anda mati), tampaknya cukup mudah untuk diperbaiki. Namun, setidaknya ada dua cara ( buat replika RequiredAttributeDescriptor dan teman-teman, atau pindah ke kelas/antarmuka dasar) untuk melakukan ini dan ini adalah sejumlah besar perubahan kode.

@rynowak dan/atau @DamianEdwards , tolong beri tahu sesuatu kepada @CamiloTerevinto karena kami ingin ini ditingkatkan.

Diperbarui Lihat komponen di ASP.NET Core dengan

Semua parameter komponen tampilan diperlukan

Setiap parameter dalam komponen tampilan adalah atribut yang diperlukan. Lihat masalah GitHub ini . Jika ada parameter yang dihilangkan:

  • Tanda tangan metode InvokeAsync tidak akan cocok, oleh karena itu metode tidak akan dijalankan.
  • ViewComponent tidak akan membuat markup apa pun.
  • Tidak ada kesalahan yang akan dilempar.

Baru saja digigit (pemberitahuan itu tidak ada pada saat saya menerapkannya di aplikasi saya)

Apakah ada solusi yang direncanakan atau akan tetap seperti ini di masa mendatang? Karena ini bisa sangat berbahaya, terutama karena gagal secara diam-diam... Mungkinkah setidaknya ada peringatan atau sesuatu seperti itu pada waktu kompilasi?

Ya, saya setuju dengan komentar terakhir. Saya juga digigit oleh ini baru-baru ini dan fakta bahwa itu gagal secara diam-diam tidak baik.

@rynowak apakah mungkin menghasilkan kesalahan?

@rynowak Apakah akan ada dukungan untuk ini di masa mendatang?

Sudah lebih dari dua tahun, dan sejujurnya, sulit untuk menduplikasi parameter default di mana pun komponen tampilan digunakan.

@rynowak nomor baris yang benar di

Ini tampaknya cukup layak. Kita perlu mengajarkan kode ini tentang nilai default. Saat ini dikatakan bahwa setiap parameter adalah atribut _required_

kode ini : tautan yang diperbarui tetapi mungkin bukan baris yang benar

Terima kasih @Rick-Anderson telah memperbarui dokumen, tetapi konyol bahwa Anda bahkan harus melakukannya. Ini membuat tag helper TIDAK DAPAT DIGUNAKAN untuk proyek yang serius. Mengalami kegagalan kode _diam-diam_ saat Anda melakukan refactor atau menambahkan fitur harus benar-benar tidak dapat diterima. Saya terkejut bahwa ini masih buka hampir tiga tahun setelah pertama kali dilaporkan. Apakah ada perbaikan yang direncanakan?!

Adakah dari tim aspnetcore yang melihat ini dan memberikan jawaban pamungkas, apakah ini akan diterapkan atau tidak? Saya pribadi berpikir itu adalah sesuatu yang membuat komponen tampilan benar-benar berguna dan akan mengurangi kode yang berlebihan. Minimal, saya ingin melihat seseorang dari tim mengambil kepemilikan dan membuat keputusan tentang nasib fitur ini.

@mkArtakMSFT @rynowak mohon reviewnya dan @rynowak bisa cek

@rynowak nomor baris yang benar di

Ini tampaknya cukup layak. Kita perlu mengajarkan kode ini tentang nilai default. Saat ini dikatakan bahwa setiap parameter adalah atribut _required_

kode ini : tautan yang diperbarui tetapi mungkin bukan baris yang benar

jadi dalam 3 tahun pria @rynowak ini tidak muncul di atas masalah ini

@brgrz sudahkah Anda menemukan solusi? Karena jika " @rynowak " ini tidak dapat menemukan satu, mungkin Anda bisa datang dan membantu (mencoba konstruktif mungkin alih-alih merusak, komentar Anda tidak membawa apa pun ke meja di sini IMO ...)

Saya harus setuju itu menyedihkan untuk menyadari belum ada solusi yang diusulkan dan bahwa masalah ini telah dilaporkan sejak lama, tetapi jangan pernah lupa mereka tidak 1000 mengerjakannya dan mereka memiliki banyak area untuk dicakup ... jadi saya tidak heran beberapa masalah dibiarkan tidak terselesaikan untuk waktu yang lama, itu sama untuk setiap proyek open source di luar sana.... (hampir)

Kami akan menambahkan dukungan untuk ini di 5.0!

@brgrz sudahkah Anda menemukan solusi? Karena jika " @rynowak " ini tidak dapat menemukan satu, mungkin Anda bisa datang dan membantu (mencoba konstruktif mungkin alih-alih merusak, komentar Anda tidak membawa apa pun ke meja di sini IMO ...)

Saya harus setuju itu menyedihkan untuk menyadari belum ada solusi yang diusulkan dan bahwa masalah ini telah dilaporkan sejak lama, tetapi jangan pernah lupa mereka tidak 1000 mengerjakannya dan mereka memiliki banyak area untuk dicakup ... jadi saya tidak heran beberapa masalah dibiarkan tidak terselesaikan untuk waktu yang lama, itu sama untuk setiap proyek open source di luar sana.... (hampir)

@os1r1s110 Oh, tolong... hentikan omong kosong kontributor, rynowak memposting "Ini sepertinya cukup layak" 3 tahun yang lalu. Saya yakin masalah tunggal ini membuat pengembang di seluruh dunia kehilangan ratusan jam debug yang terbuang sia-sia dan untuk sementara waktu.

Juga, ASP.NET Core bukan produk saya juga bukan produk komunitas, ini adalah produk MS. Bahkan jika saya mau, saya sangat ragu mereka akan menerima solusi saya dan karyawan MS dibayar untuk melakukannya.

@brgrz Seperti yang saya katakan, saya juga sedih bahwa itu tidak diperbaiki lebih cepat, tetapi saya pikir masih ada cara untuk menyajikan sesuatu dan tidak menganggap semua orang yang bekerja pada proyek open source berutang sesuatu kepada Anda (dibayar atau tidak). Ya, mereka dibayar untuk bekerja pada inti asp.net dan proyek terkait, tetapi itu tidak berarti mereka memiliki sumber daya yang cukup untuk memenuhi semua kebutuhan secara tepat waktu (dan saya bahkan tidak berbicara secara khusus tentang proyek sumber terbuka di sini, ada kebutuhan akan staf yang memenuhi syarat di setiap domain saat ini).

Maaf jika saya menyinggung Anda dengan membalas posting Anda, tetapi saya masih berpikir itu bukan cara untuk membuat segalanya bergerak (dan saya tidak menganggapnya sebagai "kontributor omong kosong"), meskipun sepertinya itu membuat segalanya bergerak.. .. :)

Kembali ke Next sprint planning karena kami tidak mencapainya dalam pencapaian ini.

Kami telah memindahkan masalah ini ke pencapaian Backlog. Ini berarti bahwa itu tidak akan dikerjakan untuk rilis mendatang. Kami akan menilai kembali backlog setelah rilis saat ini dan mempertimbangkan item ini pada saat itu. Untuk mempelajari lebih lanjut tentang proses manajemen masalah kami dan untuk memiliki harapan yang lebih baik mengenai berbagai jenis masalah, Anda dapat membaca Proses Triage kami.

Kami akan menambahkan dukungan untuk ini di 5.0!

Apakah ini akan berhasil pada akhirnya?

@guitax mengingat berapa kali itu telah ditunda ditambah fakta bahwa itu telah dimasukkan kembali, menurut saya kemungkinannya sangat rendah Sepertinya prioritas baru sekarang adalah blazer.

Mari kita berharap ini akan berakhir diimplementasikan karena ini adalah masalah yang sangat menjengkelkan. 😂

Setidaknya akan lebih baik jika persyaratan ini dibuat lebih jelas dalam dokumentasi. Atribut yang hilang secara default ke nilai standar adalah norma dalam HTML; gagasan bahwa mereka akan diperlukan untuk komponen tampilan tidak terpikir oleh saya sampai saya menemukan utas ini.

Apakah halaman ini membantu?
0 / 5 - 0 peringkat