如何从c#(MVC)中的post url获取NameValuePair数据

时间:2014-07-16 10:53:22

标签: c# android asp.net-mvc

我通过添加NameValuePair从Android设备发送HttpPost请求,但没有获取如何在Controller中获取NameValuePair值。

以下是发送请求的代码: -

HttpPost request=new HttpPost(PostUrl);
HttpResponse response;
List<NameValuePair> nameValuePairs=new ArrayList<NameValuePair>(7);
    nameValuePairs.add(new BasicNameValuePair("userName",userName));
    nameValuePairs.add(new BasicNameValuePair("password",Password));
    nameValuePairs.add(new BasicNameValuePair("deviceId",deviceId));
    nameValuePairs.add(new BasicNameValuePair("subdomain",Subdomain));
    nameValuePairs.add(new BasicNameValuePair("deviceType",DeviceType));
    nameValuePairs.add(new BasicNameValuePair("uniqueId",UniqueId));
    nameValuePairs.add(new BasicNameValuePair("appVersion",AppVersion));
    request.setEntity(new UrlEncodedFormEntity(nameValuePairs,"UTF-8"));
    response = client.execute(request);

这是我发送的NameValuePair ..

现在,这是我的帐户控制器和方法登录的代码(C#),我将发布这些数据。

public LoginResponse login( NameValueCollection post, String UserName, String password, String deviceId, String subdomain, String deviceType,String uniqueId,String appVersion)
{
String User=Convert.toString(post["userName"]);


}

请告诉我如何在此方法中获取NameValuePair。如果我通过附加到Post Url发送所有参数然后其工作正常但如果我通过NameValuePair发送它然后用户的值永远是空的

1 个答案:

答案 0 :(得分:0)

试试这个:

public LoginResponse login(NameValueCollection post)
{
    string test1 = post.Get("userName");
    string test2 = post.Get("password");
}

另外,如果这是MVC选择标准结果(在这种情况下,ContentResult返回一个字符串):

public ContentResult login(NameValueCollection post)
{
    LoginResponse loginResponse = //some method call...

    return Content("login", loginResponse)
}

让我知道它是否有效。如果没有,我还有其他一些建议。