मुझे यकीन है कि मैं पालन के रूप में आप GET
और अपने कोड में वहीं POST
है, लेकिन किसी भी मामले में आप अन्य विकल्प हैं नहीं कर रहा हूँ:
विकल्प 1
सबसे पहले, आप में अपने कस्टम मार्गों कॉन्फ़िगर कर सकते हैं WebApiConfig.cs
फ़ाइल में फ़ोल्डर।
// GET /api/{resource}/{action}
config.Routes.MapHttpRoute(
name: "Web API RPC",
routeTemplate: "{controller}/{action}",
defaults: new { },
constraints: new { action = @"[A-Za-z]+", httpMethod = new HttpMethodConstraint("GET") }
);
// GET|PUT|DELETE /api/{resource}/{id}/{code}
config.Routes.MapHttpRoute(
name: "Web API Resource",
routeTemplate: "{controller}/{id}/{code}",
defaults: new { code = RouteParameter.Optional },
constraints: new { id = @"\d+" }
);
// GET /api/{resource}
config.Routes.MapHttpRoute(
name: "Web API Get All",
routeTemplate: "{controller}",
defaults: new { action = "Get" },
constraints: new { httpMethod = new HttpMethodConstraint("GET") }
);
// PUT /api/{resource}
config.Routes.MapHttpRoute(
name: "Web API Update",
routeTemplate: "{controller}",
defaults: new { action = "Put" },
constraints: new { httpMethod = new HttpMethodConstraint("PUT") }
);
// POST /api/{resource}
config.Routes.MapHttpRoute(
name: "Web API Post",
routeTemplate: "{controller}",
defaults: new { action = "Post" },
constraints: new { httpMethod = new HttpMethodConstraint("POST") }
);
// POST /api/{resource}/{action}
config.Routes.MapHttpRoute(
name: "Web API RPC Post",
routeTemplate: "{controller}/{action}",
defaults: new { },
constraints: new { action = @"[A-Za-z]+", httpMethod = new HttpMethodConstraint("POST") }
);
मैं RESTful
अंतिम बिंदुओं का एक संयोजन के साथ ही RPC
अंतिम बिंदुओं का उपयोग करें: यहाँ मैं सामान्य रूप से उपयोग करें। कुछ शुद्धवादियों के लिए, यह एक पवित्र युद्ध के लिए आधार है। मेरे लिए, मैं दोनों के संयोजन का उपयोग करता हूं क्योंकि यह एक शक्तिशाली संयोजन है और मुझे कोई सौहार्दपूर्ण कारण नहीं मिल रहा है।
विकल्प 2
के रूप में अन्य लोगों ने बताया है और के रूप में मैं अपने आप को इन दिनों के और अधिक कर रहा हूँ, उपयोग विशेषता मार्ग:
[HttpGet]
[GET("SomeController/SomeUrlSegment/{someParameter}")]
public int SomeUrlSegment(string someParameter)
{
//do stuff
}
मैं इस काम करने के लिए मार्ग विशेषता के लिए एक NuGet पैकेज की जरूरत (केवल "विशेषता रूटिंग" के लिए NuGet खोजें), लेकिन मुझे लगता है कि एमवीसी 5/वेबएपीआई 2 में यह मूल रूप से है।
उम्मीद है कि इससे मदद मिलती है।
हाय! जब मैं 'रूट (" MyPath ") इनपुट करने का प्रयास करता हूं] 'VS2013 इसे हल नहीं करता है। इसके अलावा मैं इसे डीबग नहीं कर सकता। यह मुझे '[रूट (" माईपैथ ")]' के बारे में एक त्रुटि देता है। क्या आप जानते हैं कि समस्या क्या है? –
@ClarkKent एमवीसी 5 और वेबएपी 2 में इसका मूल निवासी है, अन्यथा, आपको 'एट्रिब्यूट रूटिंग' –