Staram się pisać dwa parametry do następujących funkcji, ale nie udało się dotrzeć do funkcji:C# web-api po funkcjonować z dwoma parametrami
public void SetShopSubCategories([FromBody]string userId, int []subCategories)
{
}
To jak mam pisać:
var subCategories = [ 1, 2, 3, 4, 5];
var userId = "123";
$.ajax({
type: "POST",
url: "/Category/SetShopSubCategories/",
contentType: 'application/json; charset=utf-8',
data: JSON.stringify(userId, subCategories),
success: function() {
alert("OK");
},
error: function() {
alert("error");
}
Kiedy zakładać tylko jednego parametru idzie dobrze i mogę osiągnąć funkcję:
public void SetShopSubCategories([FromBody]string userId)
{
}
var userId = "123";
$.ajax({
type: "POST",
url: "/Category/SetShopSubCategories/",
contentType: 'application/json; charset=utf-8',
data: JSON.stringify(userId, subCategories),
success: function() {
alert("OK");
},
error: function() {
alert("error");
}
To idzie również dobrze:
public void SetShopSubCategories(int []subCategories)
{
}
var subCategories = [ 1, 2, 3, 4, 5];
$.ajax({
type: "POST",
url: "/Category/SetShopSubCategories/",
contentType: 'application/json; charset=utf-8',
data: JSON.stringify(subCategories),
success: function() {
alert("OK");
},
error: function() {
alert("error");
}
My RoutConfig:
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
GlobalConfiguration.Configuration.Routes.MapHttpRoute(
name: "SetCategories",
routeTemplate: "{controller}/{action}"
);
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
Tak, właśnie to zrobiłem. – Eyal
Jeśli musisz obsługiwać wiele, niż musisz budować wiele rzeczy, od niestandardowego FromBody do tego, jak się wiąże, a nawet musisz przechowywać swój strumień, to jest niestandardowy bufor i tak dalej. – dotnetstep