2017-01-05 15 views
1

RESTful APIを作成する方法については、記事Build RESTful API's with ASP.NET Web APIに従っています。REST APIが期待した結果を返さない

私は最初のプロジェクトとコントローラ、Contactを作成しました。

public class ContactController : Controller 
{ 
    // GET: Contact 
    public string[] Index() 
    { 
     return new string[] 
     { 
      "Hello", 
      "World" 
     }; 
    } 
} 

しかし、私は代わりに、物品(["Hello","World"])で説明した応答を得るための、ブラウザにURLを読み込むとき。私が得る応答はSystem.String[]です。

私には分かりません。

ところで、記事は2013年です。誰かが少し新しくなった良い記事を知っていますか?

答えて

1

あなたは今、単純なASP.NET MVCコントローラです。ウェブAPIコントローラの場合、あなたはApiController代わりのControllerからあなたのコントローラを継承する必要があります。

public class ContactController : ApiController 

また、アクション名は、HTTP動詞で開始する必要があります。 /api/contactエンドポイントにGETリクエストを送信するとエラーが発生します

リクエストされたリソースは、httpメソッド 'GET'をサポートしていません。

デフォルトでは、アクション名はWeb APIコントローラのルートでは使用されません。デフォルトルート設定を確認する場合は、api/{controller}/idになります。正しいアクションは、リクエストのHTTPメソッドによって選択されます。あなたの場合はGetXXXまたは単にGet

+0

まあ役立ちます

public class ContactController : Controller { // GET: Contact public JsonResult Index() { return Json(new { value1: "Hello", value2: "world" }, JsonRequestBehavior.AllowGet); } } 

希望のようなものを行うことができ、はい、それは状況であるように思われます。なぜそのようなPOSの記事が驚いています。後の例の1つまで、 'ApiController'や' Get'は言及していません! –

+0

@JonathanWoodうん、私は著者が正しいクラスを指摘しなかったのだろうかと思う。スクリーンショットについて言及しています - 新しいコントローラを追加するための足場のテンプレートは*空のAPIコントローラ* –

+0

別の質問をすることはできますか? JSONを返すようです。これは設定できますか? –

0

Web Apisから通常のプリミティブを返すことはできません。あなたが通常のMVC Web APIを.netから使用している場合、少なくともそうでない場合は。される場合がありますので、あなたはこれが

+0

ありがとうございますが、これは記事。 –

関連する問題