'HttpRequestMessage' 不包含 'Form' 的定义

'HttpRequestMessage' does not contain a definition for 'Form'

ASP.NETMVC 6(DNX 4.5.1).

在我的 PUT 方法中。

public class MyController : ApiController
{
    .......
// UPDATE
    [Microsoft.AspNet.Mvc.HttpPut]
    public void Update()
    {
        try
        {
            var item = new Item()
            {
                UserName = Request.Form["UserName"]
            };
            _itemRespository.Update(item);
        }
        catch (Exception e)
        {
            Debug.WriteLine(e.Message);
        }
    }

我得到了什么:

Error CS1061 'HttpRequestMessage' does not contain a definition for 'Form' and no extension method 'Form' accepting a first argument of type 'HttpRequestMessage' could be found (are you missing a using directive or an assembly reference?) MyProject.DNX 4.5.1

有一个similar question,但我没有看到帮助我。

编辑:

link 使用 POST 将数据传递给方法。他在方法里传了string value。换句话说,他提前知道了价值。好吧,就我而言,我使用 jqgrid 来编辑我的数据。点击提交按钮后,我认为编辑的数据来自Request Form。我还不知道。

关于如何将动态表单内容传递到 Web api 方法,这里有 2 个很好的起点。

Sending HTML Form Data in ASP.NET Web API: Form-urlencoded Data

Whosebug question - How to get POST data in WebAPI?

所以您的问题应该改写为您如何使用动态表单内容和 Web API 框架。它与您使用的网络方法(POST、PUT、DELETE、GET)无关。

Microsoft.AspNet.Mvc.HttpPut

ASP.NET MVC 6(DNX) 不支持获取。除非我们使用

System.Web.Http.HttpPut