3

JsonApi 標準 (主に Ember.js で使用されるhttp://jsonapi.org/ ) をサポートする ASP.NET Web Api コントローラーを実装しようとしています。

URL にはダッシュが含まれる場合があります。ただし、C# コード内の対応するメソッド名にはダッシュが含まれていない場合があります。

私のjavascriptはに投稿しようとします

http://localhost:50000/jsonapi/activity-exercises

しかし、そのリクエストを受信できるエンドポイントを実装できません。私が試してみました:

[HttpPost]
public HttpResponseMessage ActivityExercises([FromBody] ActivityExerciseEntry value)
{
   // ...

理想的には、URL でマップされたアクション名を指定するためにメソッドに追加する属性が必要です。そのような属性は存在しますか?

私のルート マッピングは次のようになります。

public static void RegisterRoutes(RouteCollection routes)
{
    routes.MapHttpRoute("EmberJsonApi", "jsonapi/{action}/{id}", new { controller = "JsonApi", id = RouteParameter.Optional });
    routes.MapHttpRoute("DefaultApi", "api/{controller}/{id}", new { id = RouteParameter.Optional });
}
4

1 に答える 1

5

私はそれを考え出した。これは十分に文書化されていないため、多くのグーグル検索が必要でした....

私が疑ったように、使用できる属性が存在します。[ActionName]

したがって、エンドポイントの定義は次のようになります。

[HttpPost]
[ActionName("activity-exercises")]
public HttpResponseMessage ActivityExercises([FromBody] ActivityExerciseEntry value)
{
   ...
于 2015-10-16T12:53:17.723 に答える