我很好奇为什么 ApiController 处理动作的默认参数值与“常规”控制器不同。
这段代码工作得很好,请求 /Test 意味着页面获取值 1
public class TestController : Controller
{
public ActionResult Index(int page = 1)
{
return View(page);
}
}
当向 /api/Values 发出请求时,此代码不起作用。它失败了:
“参数字典包含不可为空类型‘System.Int32’的参数‘页面’的空条目,用于‘MvcApplication1.Controllers’中的方法‘System.Collections.Generic.IEnumerable`1[System.String] Get(Int32)’ .Controllers.ValuesController'。可选参数必须是引用类型、可空类型或声明为可选参数。”
public class ValuesController : ApiController
{
public IEnumerable<string> Get(int page = 1)
{
return new string[] { page.ToString() };
}
}
关于为什么会这样的任何提示?