मैंने डिफ़ॉल्ट एएसपी.नेट कोर एमवीसी टेम्पलेट का उपयोग करके एक प्रोजेक्ट बनाया है। मैं /api/{Controller}
के तहत एक विश्वसनीय API भी बनाना चाहता हूं। मैंने एक नया वेब एपीआई नियंत्रक (मानक वेब एपीआई नियंत्रक वर्ग टेम्पलेट) जोड़ा लेकिन मैं इसे कॉल नहीं कर सकता। मुझे यह कहते हुए एक त्रुटि मिल रही है कि पृष्ठ नहीं मिला। मैं Startup.csमें एक मार्ग को जोड़ने की कोशिश की है, लेकिन यह कुछ भी नहीं करता है:मौजूदा एएसपी.नेट कोर एमवीसी में वेब एपीआई नियंत्रक कैसे जोड़ें?
app.UseMvc(routes =>
{
routes.MapRoute(name: "default", template: "{controller=Home}/{action=Index}/{id?}");
routes.MapRoute(name: "api", template: "api/{controller=Admin}");
});
संपादित करें:
जैसा कि मैंने कहा, यह सब डिफ़ॉल्ट टेम्पलेट्स है। यहाँ वेब एपीआई नियंत्रक कि मैं जोड़ा है:
[Route("api/[controller]")]
public class AdminController : Controller
{
// GET api/values/5
[HttpGet("{id}")]
public string Get(int id)
{
return "value";
}
// POST api/values
[HttpPost]
public void Post([FromBody]string value)
{
}
// PUT api/values/5
[HttpPut("{id}")]
public void Put(int id, [FromBody]string value)
{
}
// DELETE api/values/5
[HttpDelete("{id}")]
public void Delete(int id)
{
}
}
हम्म, मैं अपने घर पीसी पर नहीं हूं, इसलिए मैं गलत हो सकता हूं, लेकिन मुझे नहीं लगता कि आपको एपीआई के लिए एक नया मार्ग जोड़ने की जरूरत है। मुझे लगता है कि आप केवल एपीकंट्रोलर बेस क्लास से उत्तराधिकारी हैं, और प्राप्त करते हैं कि आप इससे स्वयं हैं। तो एमवीसी आपके लिए रूटिंग करना चाहिए। इस बिंदु पर, आपके रूटिंग में, आपके पास केवल एक चीज है जो आपकी डिफ़ॉल्ट रूटिंग है, और एमवीसी आपके लिए एपीआई रूटिंग को संभालेगा। –
यही मैंने कल्पना की है, फिर भी http: // localhost: 278 9 1/एपीआई/एडमिन परिणाम ERR_CONNECTION_REFUSED में नेविगेट कर रहा है। –
https://docs.microsoft.com/en-us/aspnet/web-api/overview/getting-started-with-aspnet-web-api/tutorial-your-first-web-api आधे रास्ते तक स्क्रॉल करें उत्पाद नियंत्रक। यह एपीकंट्रोलर से प्राप्त होता है, नियंत्रक से नहीं। –