2012-10-07 9 views
79

का समर्थन नहीं करता है मेरा मार्ग सही तरीके से कॉन्फ़िगर किया गया है, और मेरे तरीकों में सजाया गया टैग है। मुझे अभी भी मिलता है "अनुरोधित संसाधन HTTP विधि 'GET'" संदेश का समर्थन नहीं करता है?अनुरोधित संसाधन HTTP विधि 'GET'

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 } 
); 

उत्तर

190

System.Web से विशेषताओं का उपयोग करें:

[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"; 
} 

यहाँ मेरी रास्ते हैं। Http अपने वेबएपीआई कार्यों पर नाम स्थान:

[System.Web.Http.AcceptVerbs("GET", "POST")] 
    [System.Web.Http.HttpGet] 
    public string Auth(string username, string password) 
    {...} 

कारण है कि यह काम नहीं करता है, क्योंकि आप विशेषताओं MVC नाम स्थान System.Web.Mvc से हैं उपयोग कर रहे थे। System.Web.Http नामस्थान में कक्षा वेबएपीआई के लिए हैं।

+8

अरे .. धन्यवाद! मैं पागल हो सकता हूं कि आप इतनी छोटी चीजों पर समय बर्बाद कर सकें .. – Rushino

+1

यह सही जवाब क्यों है? –

+1

दरअसल, ** का एक स्पष्टीकरण क्यों ** यह सही उत्तर है निश्चित रूप से यहां जरूरी है! – Jaxidian