Kaedah terlebih muatan dalam ASP.NET MVC
Pembebanan kaedah adalah teknik pengaturcaraan biasa, tetapi adakah ia mungkin dalam ASP.NET MVC?
Dalam ASP.NET MVC, cubaan untuk melebihkan kaedah pengawal selalunya menghasilkan mesej ralat: "Permintaan semasa untuk tindakan 'MyMethod' pada jenis pengawal 'MyController' adalah samar-samar antara kaedah tindakan berikut:"
Ralat ini berlaku kerana ASP.NET MVC tidak dapat membezakan antara kaedah terlebih muatan dengan senarai parameter yang berbeza, walaupun mereka menggunakan nama tindakan yang sama.
Penyelesaian menggunakan atribut ActionName
Untuk mengatasi had ini, atribut [ActionName]
boleh digunakan. Anda boleh mengarahkan ASP.NET MVC untuk membezakan antara setiap kaedah terlebih beban dengan menentukan nama tindakan yang unik.
Contohnya:
<code class="language-csharp">[ActionName("MyOriginalAction")] public ActionResult MyAction(int id) { ... } [ActionName("MyOverloadedAction")] public ActionResult MyAction(string name) { ... }</code>
Penghadan
Walaupun atribut [ActionName]
membenarkan pemuatan berlebihan kaedah pengawal, ia memerlukan anda menggunakan nama tindakan yang berbeza untuk kaedah HTTP yang sama. Ini boleh menjejaskan ketekalan dan kebolehbacaan kod anda.
Kaedah alternatif
Daripada membebankan kaedah pengawal, pertimbangkan untuk menggunakan corak reka bentuk lain, seperti:
Atas ialah kandungan terperinci Bolehkah anda membebankan kaedah pengawal dalam ASP.NET MVC?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!