私はASP.NET Web APIとangularJsを使用してWebアプリケーションを開発しています。 私はこのようなウェブAPIコントローラがあります。私は$ scope.AddNewCityかを実行するとWeb APIコントローラで同じパラメータを使用する複数のHttpPostアクション
$scope.AddNewState = function() {
$http({
method: "POST",
url: "api/RegionManagement/AddNewState",
data: {
StateName: $scope.state
}
}).then(function (response) {
var obj = JSON.parse(response.data);
$scope.States.push({ text: obj.newStateInformation.StateName, value: obj.newStateInformation.ID });
});
};
$scope.AddNewCity = function() {
$http({
method: "POST",
url: "api/RegionManagement/AddNewCity",
data: {
ParentID: $scope.RegionInptes.ParentID,
CityName: $scope.city
}
}).then(function (response) {
var obj = JSON.parse(response.data);
alert(obj.message);
});
};
:POSTリクエストを送信するため
[ActionName("AddNewState")]
public object PostAddNewState(RegionInformation newStateParam)
{
RegionOperations regionOperation = new RegionOperations(newStateParam.StateName);
RegionInformation newStateInformation = regionOperation.NewStateInformation;
var text = new
{
newStateInformation
};
return JsonConvert.SerializeObject(text);
}
[ActionName("AddNewCity")]
public object PostAddNewCity(RegionInformation newCityParam)
{
var text = new
{
message="Hello"
};
return JsonConvert.SerializeObject(text);
}
をし、クライアント側で、私は、これらの機能を持っています$ scope.AddNewState私はと対峙しています500内部サーバーエラー .if私はコメントしますAddNewCity web in api controその後、$ scope.AddNewStateを正常に実行できます。
web apiコントローラで複数のHTTPPostを使用して検索し、この解決策を試してください:Multiple HttpPost method in Web API controller、しかし何も起こらず、私はまだそのエラーがあります。
UPDATE
これは私の設定ファイルである:
public static void Register(HttpConfiguration config)
{
// Web API configuration and services
// Web API routes
config.MapHttpAttributeRoutes();
config.Routes.MapHttpRoute(
name: "ControllerOnly",
routeTemplate: "api/{controller}"
);
config.Routes.MapHttpRoute(
name: "ControllerandId",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
config.Routes.MapHttpRoute(
name: "ControllerAndAction",
routeTemplate: "api/{controller}/{action}"
);
}
ウェブAPI設定を表示します。おそらくrouteTemplateは '{controller}/{id}'です。そのため、フレームワークがあなたが呼び出しようとしているアクションを判断できないため、エラーが発生します。 {{controller}/{action}/{id} 'アクションを含むテンプレートを更新し、それが動作するかどうか確認してください。 – Nkosi
@ Nkosi私の設定ファイルを更新後に追加します。 –