asp.net mvc 4 एक परियोजना में वेब एपीआई और एएसपी.NET एमवीसी पेजों को मिलाकर




asp.net-mvc-4 (3)

मैं एक परियोजना में वेब एपीआई और एएसपी.NET एमवीसी पृष्ठों को कैसे मिला सकता हूं?

उदाहरण के लिए, मेरे पास मॉडल उपयोगकर्ता है। मैं, एक ही प्रोजेक्ट के भीतर, एक एपीकंट्रोलर रखना चाहता हूं जो उपयोगकर्ता इकाइयों के प्रबंधन के लिए सभी HTTP क्रियाओं का जवाब देगा, और साथ ही साथ एक नियंत्रक भी होगा जो अनुरोधित कार्रवाई के आधार पर उपयुक्त दृढ़ता से टाइप किए गए दृश्यों को वापस कर देगा।

मैं नियंत्रक UserController दोनों नाम नहीं कर सकता। इस के आसपास सबसे अच्छा तरीका क्या है? क्या मुझे एक UserApiController और अन्य उपयोगकर्ता नियंत्रक का नाम देना चाहिए? कोई अन्य सुझाव?


मैंने नामस्थानों को नहीं बदला है, केवल एक चीज जो मुझे करना था वह पहले वेबएपी पंजीकृत था, और फिर एमवीसी मार्ग

//First register WebApi router
GlobalConfiguration.Configure(WebApiConfig.Register);
//and register Default MVC Route after
RouteConfig.RegisterRoutes(RouteTable.Routes);

और सब कुछ महान काम करता है!


आप उन्हें अलग-अलग नामस्थानों में रख सकते हैं, जैसे MyApp.Controllers.UsersController और MyApp.Controllers.WebAPI.UsersController।

यह आपको एमवीसी और वेबएपीआई में समान यूआरआई मार्गों का पर्दाफाश करने देगा, उदाहरण के लिए:

/users/1      << MVC view
/api/users/1  << Web API

वेबएपीआई कार्यान्वयन को एमवीसी अनुप्रयोग में एक अलग Area रूप में जोड़ा जाना चाहिए। यह एक प्राकृतिक फिट है। ऐसा करने से आपको माइक वासन ने अलग नामस्थान दिया है, साथ ही यह आपको / एपीआई रूटिंग सेट अप करने का एक प्राकृतिक तरीका भी देता है। आपको एक अलग मॉडल फ़ोल्डर मिलता है

इसके अतिरिक्त, यह विशेष रूप से बाकी परियोजना से अलग है। यदि भविष्य में आवश्यकताएं ऐसी हैं कि आपको एपीआई कार्यान्वयन को एक अलग परियोजना में अलग करने की आवश्यकता है, तो एक अलग क्षेत्र में पृथक एपीआई कार्यान्वयन करने से यह बहुत आसान हो जाता है।





asp.net-mvc-4