ApiController がアクションのデフォルト パラメータ値を「通常の」コントローラとは異なる方法で処理する理由に興味があります。
このコードは問題なく動作します。/Test へのリクエストは、ページが値 1 を取得することを意味します
public class TestController : Controller
{
public ActionResult Index(int page = 1)
{
return View(page);
}
}
/api/Values に対してリクエストが行われた場合、このコードは機能しません。次のエラーで失敗します。
「パラメーター ディクショナリには、'MvcApplication1.Controllers のメソッド 'System.Collections.Generic.IEnumerable`1[System.String] Get(Int32)' の null 非許容型 'System.Int32' のパラメーター 'page' の null エントリが含まれています。 .Controllers.ValuesController'. オプションのパラメーターは、参照型または null 許容型であるか、オプションのパラメーターとして宣言する必要があります。"
public class ValuesController : ApiController
{
public IEnumerable<string> Get(int page = 1)
{
return new string[] { page.ToString() };
}
}
これがなぜなのかについてのヒントはありますか?