Sadece bu URL'yi bir POST kabul eden bir denetleyicisi var:ASP.NET MVC yönlendirmesinde HttpMethodConstraint ile nasıl özel bir kısıtlama kullanırım?
POST http://server/stores/123/products
SONRASI content-type application/json
olmalıdır, bu nedenle bu benim yönlendirme tablosunda ne var:
routes.MapRoute(null,
"stores/{storeId}/products",
new { controller = "Store", action = "Save" },
new {
httpMethod = new HttpMethodConstraint("POST"),
json = new JsonConstraint()
}
);
nerede JsonConstraint
: Ben rotayı kullandığınızda
public class JsonConstraint : IRouteConstraint
{
public bool Match(HttpContextBase httpContext, Route route, string parameterName, RouteValueDictionary values, RouteDirection routeDirection)
{
return httpContext.Request.ContentType == "application/json";
}
}
, ben Yasak bir 405 olsun:
Benjson = new JsonConstraint()
kısıtlamasını kaldırırsanız
The HTTP verb POST used to access path '/stores/123/products' is not allowed
Ancak, iyi çalışıyor. Neyi yanlış yaptığımı bilen var mı?
size jQuery pasajı gönderebilir Lütfen? Bazı başka testler çalıştırıyorum ve ContentType'ın "application/xml" olarak gösterildiğini gösteriyor. –
Test etmek için 'REST Client' adlı bir Firefox eklentisi kullanıyorum. –