ASP.Net 5 中缺少 FormCollections

FormCollections missing from ASP.Net 5

System.Web.Mvc 中的 FormCollections 发生了什么变化?在过去,我会使用类似 string value = data.GetValues(key).FirstOrDefault(); 的东西,其中数据是一个表单集合。现在,当我尝试实现一个 FormCollection 时,它来自 Microsoft.AspNet.Http.Internal。其中不包含 GetValues 方法。

我目前正在使用 MVC 的 beta 8。

似乎表单集合现在由接口 IFormCollection which inherits from IReadableStringCollection 表示,它可以通过 http 请求中传递的表单集合中的键和值进行枚举。它还可以用于通过索引获取键的值:

var myValues = this.Request.Form[someKey];

您可以在控制器中通过 Request.Form 访问它。而不是 GetValues 方法,这些值是从它的索引器访问的:

var id = Request.Form["id"];

PS: 如果给定的键不存在,它不会 return null 或抛出任何异常。它 returns StringValues.Empty 代替。