Melebihi muatan kaedah pengawal dalam ASP.NET MVC
Dalam ASP.NET MVC, pembangun sering menghadapi ralat "AmbiguousActionException" apabila cuba mentakrifkan berbilang kaedah pengawal dengan nama yang sama tetapi parameter berbeza. Ralat ini menunjukkan bahawa rangka kerja tidak dapat menentukan kaedah yang hendak dilaksanakan berdasarkan permintaan.
Walaupun terdapat mesej ralat, kaedah pengawal masih boleh dimuatkan, walaupun dengan amaran. ASP.NET MVC tidak menyokong kaedah lebih muatan dalam cara tradisional, di mana kaedah boleh mempunyai nama yang sama dan jenis parameter yang berbeza. Sebaliknya, pembangun mesti bergantung pada atribut [ActionName]
untuk mencapai hasil yang serupa.
Contoh:
<code class="language-csharp">[HttpPost] public ActionResult MyMethod(int id) { /* ... */ } [HttpPost] [ActionName("MyMethod")] public ActionResult MyMethod(string name) { /* ... */ }</code>
Dalam contoh ini, kedua-dua kaedah MyMethod
mempunyai kaedah HTTP yang sama (HttpPost) tetapi menerima parameter yang berbeza. Dengan menggunakan atribut [ActionName]
pada kaedah kedua, kami secara berkesan memberikannya nama operasi yang berbeza ("MyMethod"), dengan itu melaksanakan lebihan muatan.
Adalah penting untuk ambil perhatian bahawa kaedah terlebih muatan menggunakan atribut [ActionName]
memerlukan setiap kaedah nama operasi yang unik, walaupun ia berkongsi kaedah HTTP yang sama. Sekatan ini menghalang kekaburan dalam penghalaan permintaan.
Atas ialah kandungan terperinci Bagaimanakah saya boleh membebankan kaedah pengawal dalam ASP.NET MVC?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!