Rumah >pembangunan bahagian belakang >C++ >Mengapa Enum ASP.NET MVC Saya Disiri sebagai Nombor Bukan Rentetan?

Mengapa Enum ASP.NET MVC Saya Disiri sebagai Nombor Bukan Rentetan?

DDD
DDDasal
2025-01-26 11:31:11239semak imbas

Why Are My ASP.NET MVC Enums Serializing as Numbers Instead of Strings?

Menyelesaikan masalah ASP.NET MVC Enum Serialisasi kepada JSON

Aplikasi ASP.NET MVC secara tidak dijangka mensiri enum sebagai nombor dalam respons JSON, bukannya perwakilan rentetan yang dikehendaki. Ini menunjukkan penyeri bersiri lalai bukan Newtonsoft.Json (Json.NET), walaupun ia biasa digunakan. Mari kita periksa punca dan penyelesaian yang berpotensi:

1. Semakan Konfigurasi:

Pengendali kandungan fail web.config mungkin mentakrifkan penyeri JSON tersuai. Walau bagaimanapun, ini tidak mungkin jika Json.NET tidak dikonfigurasikan secara eksplisit.

2. Pengenalan Pensiri Lalai:

Yang penting, versi ASP.NET MVC sebelum MVC 5 tidak menggunakan Json.NET secara lalai; mereka menggunakan JavaScriptSerializer. Untuk memanfaatkan siri enum rentetan Json.NET, penyepaduan manual diperlukan. Sumber yang memperincikan proses ini termasuk:

  • "Menggunakan JSON.NET sebagai penyeri JSON lalai dalam ASP.NET MVC 3 - adakah mungkin?"
  • "ASP.NET MVC dan Json.NET"

3. Model Binding dan Custom ValueProviderFactory:

Untuk Json.NET menyusun enum dengan betul sebagai rentetan, ValueProviderFactory tersuai mungkin diperlukan. Kilang tersuai ini membenarkan pengikatan data JSON kepada sifat model semasa pengikatan model. Rujuk sumber ini untuk butiran pelaksanaan:

  • "ASP.NET MVC 3 – Menambahbaik JsonValueProviderFactory menggunakan Json.Net"
  • "Kelas ValueProviderFactories"

Dengan menangani perkara ini, anda boleh memastikan aplikasi ASP.NET MVC anda menyerikan enum sebagai rentetan dalam respons JSON, selaras dengan tingkah laku yang dijangkakan.

Atas ialah kandungan terperinci Mengapa Enum ASP.NET MVC Saya Disiri sebagai Nombor Bukan Rentetan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn