ما هو أبسط وسيلة للعودة أنواع مختلفة من المحتوى على أساس التمديد في رابط ؟
-
08-07-2019 - |
سؤال
أود أن تكون قادرة على تغيير امتداد url تلقي نموذج في شكل مختلف.
على سبيل المثالإذا
/products/list
بإرجاع صفحة html تحتوي على قائمة من المنتجات ، ثم
/products/list.json
سيعود لهم في قائمة json.
ملاحظة: أنا أحب البساطة ASP.NET MVC بقية SDK, ، فإنه يتطلب فقط عن 5 أسطر من التعليمات البرمجية إلى هوك ، ولكن الشكل المحدد كما استعلام معلمة سلسلة أي /products/list?format=json
وهو ليس ما أريد أنا يمكن أن يعدل هذا القانون إذا كان هناك أي خيارات أخرى, ولكن أنا لا أريد أن إعادة اختراع العجلة!
المحلول
كتبت بلوق وظيفة أن يظهر واحد ممكن سبيل المثال.انها قليلا معقدة ، ولكن قد تعمل لتلبية الاحتياجات الخاصة بك.
http://haacked.com/archive/2009/01/06/handling-formats-based-on-url-extension.aspx
نصائح أخرى
يجب أن تكون قادرا على استخدام طرق بالتزامن مع بقية sdk
إذا كان لديك المرونة إسقاط أباتشي أو شيئا من هذا القبيل أمام الخدمة الخاصة بك ، يمكنك دائما استخدام mod_rewrite
إلى كتابة خارجي http://products/list.json
في http://products/list?format=json
والتي الإطار الخاص بك يمكن أن تجعل أكثر سهولة.
بدلا من "قائمة.json", هل يمكن أن تختار "قائمة/سلمان" واستخدام الطريق مثل
{المراقب}/{العمل}/{id}
ثم ProductController.القائمة ستكون مع هوية المعلمة من "سلمان".على .قائمة() العمل ثم تقرر ما إذا كان أو عدم العودة إلى HTML أو JSON المحتوى.