У меня есть конечная точка API.Действие контроллера выглядит следующим образом -
public IHttpActionResult Post(string entityType, SomeModel someModel)
Здесь SomeModel
- модель представления, которая выглядит следующим образом -
public class SomeModel
{
public long? Id { get; set; }
public long EntityId { get; set; }
public string Text { get; set; }
}
Я вызываю эту конечную точку API с конца angularjs -
return $http({
method: 'POST',
url: ENV.apiEndpoint + 'tags',
params:{
// here I want to pass parameters which will automatically map into API's two parameter(one string and the other view model)
}
});
Я не хочу изменять свою конечную точку API.У меня вопрос, как я могу передать параметр из углового конца, который будет автоматически отображаться в аргумент метода API.
Я пробовал несколько вещей -
var someModel = {id: 1, text:"something", entityId: 12}
return $http({
method: 'POST',
url: ENV.apiEndpoint + 'tags',
params:{
entityType: entityType,
someModel: JSON.stringify(someModel)
}
});
Или,
var someModel = {id: 1, text:"something"}
return $http({
method: 'POST',
url: ENV.apiEndpoint + 'tags',
params:{
entityType: entityType,
id: 1,
text: "something",
entityId: 12
}
});
Кажется, ничего из этого не работает.Это означает, что параметры неправильно отображаются в аргументе метода API.Каков идеальный способ передачи параметров в сценарии такого типа?
Я не хочу изменять аргумент метода API. Я знаю, что могу использовать [FromBody] or [FromURI]
.Но я не хочу делать это.