Rute saya dikonfigurasi dengan benar, dan metode saya memiliki tag yang didekorasi. Saya masih mendapatkan pesan "Sumber daya yang diminta tidak mendukung metode HTTP 'GET'"?
[System.Web.Mvc.AcceptVerbs("GET", "POST")]
[System.Web.Mvc.HttpGet]
public string Auth(string username, string password)
{
// Décoder les paramètres reçue.
string decodedUsername = username.DecodeFromBase64();
string decodedPassword = password.DecodeFromBase64();
return "value";
}
Inilah rute saya:
config.Routes.MapHttpRoute(
name: "AuthentificateRoute",
routeTemplate: "api/game/authentificate;{username};{password}",
defaults: new { controller = "Game",
action = "Auth",
username = RouteParameter.Optional,
password = RouteParameter.Optional },
constraints: new { httpMethod = new HttpMethodConstraint(HttpMethod.Get) }
);
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { controller = "Home", id = RouteParameter.Optional }
);
c#
routing
asp.net-web-api
Rushino
sumber
sumber
gunakan saja atribut ini
tidak membutuhkan baris kode ini:
sumber
Dalam kasus saya, tanda tangan rute berbeda dari parameter metode. Saya memiliki id, tetapi saya menerima documentId sebagai parameter, yang menyebabkan masalah.
sumber
Saya mengalami masalah yang sama .. Saya sudah memiliki 4 pengontrol yang berjalan dan berfungsi dengan baik tetapi ketika saya menambahkan yang ini, ia mengembalikan "Sumber daya yang diminta tidak mendukung metode HTTP 'GET'". Saya mencoba semuanya di sini dan di beberapa artikel lain yang relevan tetapi tidak peduli dengan solusinya karena, seperti yang disebutkan Dan B. dalam menanggapi jawabannya, saya sudah memiliki artikel lain yang berfungsi dengan baik.
Saya pergi sebentar, kembali, dan segera menyadari bahwa ketika saya menambahkan Pengontrol, pengontrol itu berada di bawah kelas "Pengontrol" dan bukan kelas "ApiController" tempat Pengontrol saya yang lain berada. Saya berasumsi saya memilih opsi perancah yang salah untuk membangun file .cs di Visual Studio. Jadi saya menyertakan namespace System.Web.Http, mengubah kelas induk, dan semuanya bekerja tanpa atribut atau perutean tambahan.
sumber