मुझे नहीं पता कि आप ऐसा क्यों करना चाहते हैं और मैं निश्चित रूप से एक नियंत्रक के माध्यम से सबकुछ रूट करने की अनुशंसा नहीं करता, हालांकि आप इसे निम्नानुसार प्राप्त कर सकते हैं। मान लें कि आप ही कभी अपने कॉल में एक वैकल्पिक आईडी के साथ एक संसाधन के लिए जा रहे हैं, अपने WebApiConfig से जोड़ें:
public class SuperDuperController : ApiController
{
public IHttpActionResult Get(string resource, int? id = null)
{
return Ok();
}
}
आप की आवश्यकता होगी: इस प्रकार
public static class WebApiConfig
{
public static void Register(HttpConfiguration config)
{
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{resource}/{id}",
defaults: new { controller = "SuperDuper", id = RouteParameter.Optional }
);
}
}
फिर अपने नियंत्रक विधि को परिभाषित प्रत्येक अलग-अलग प्रकार के संसाधन के लिए वापस आने के लिए उचित IHttpActionResult
पर निर्णय लें।
वैकल्पिक रूप से गुण रूटिंग का उपयोग कर, यह सुनिश्चित करें कि config.MapHttpAttributeRoutes()
अपने WebApiConfig में मौजूद है और अपने नियंत्रक विधि के लिए निम्न विशेषताओं को जोड़ने:
[RoutePrefix("api")]
public class SuperDuperController : ApiController
{
[Route("{resource}/{id?}")]
public IHttpActionResult Get(string resource, int? id = null)
{
return Ok();
}
}
स्रोत
2015-07-06 09:43:40
आपको रुचि हो सकती है http://www.asp.net/web-api/overview/web-api-routing-and-actions/routing-and-action- चयन –