在Web Api中获取Js FormData()

时间:2016-11-13 02:59:36

标签: javascript asp.net-web-api

在web api中从post请求中获取formdata是否有诀窍?在使用js FormData()在前端提交表单时,我似乎无法使用namevaluecollection或formdatacollection。我检查了http请求,以验证表单数据是否正在传递给服务器。

JS表单提交

    var formData = new FormData();
    formData.append('Email', 'email@notarealemail.com');
    formData.append('Password', '123');
    // submit data using xmlhttprequest

Controller Web Api

public IHttpActionResult CheckUser(FormDataCollection FormData)
{
     //formdatacollection and namevaluecollection don't seem to return key based values
}

1 个答案:

答案 0 :(得分:2)

实际上,在web api控制器中,您应该检查属性Request以获取您从页面发布的所有信息。接下来,您可以使用适当的方法获取数据:Request.Content.ReadAsByteArrayAsyncRequest.Content.ReadAsFormDataAsync(可能是您的情况)或Request.Content.ReadAsStreamAsync等。这取决于发送的数据格式。

或者您始终可以创建一个包含相应字段的类,并使用JSON发送它以获得另一种方式:

public IHttpActionResult CheckUser(AccountData data)
{

}

你的班级应该是这样的:

public class AccountData {    
   public String Email { get; set; }    
   public String Password { get; set; }
}