2017-10-03 20 views
1

asp.net core web api私はクライアントからFormUrlEncodedContent形式のユーザー名とパスワードを取得するPOSTメソッドを持っています。しかし、「エントリ」パラメータはnullです。asp.netコアWeb APIのFormUrlEncodedContentを投稿して読む方法

ウェブAPIのログイン方法でユーザー名とパスワードにアクセスするにはどうすればよいですか?ここ

私のコードです:

クライアント:

public async Task<string> login2(string command , string username , string password) 
    { 
     string exist = string.Empty; 

     FormUrlEncodedContent dataForm = new FormUrlEncodedContent(new[] { 
      new KeyValuePair<string,string>("username",username), 
      new KeyValuePair<string, string>("password",password) 
     }); 

     var resp = await http.PostAsync(command,dataForm); 
     exist = await resp.Content.ReadAsStringAsync(); 
     return exist; 
    } 

がサーバ:

public IActionResult Login([FromForm] string entry) 
    { 
     if (!ModelState.IsValid) 
     { 
      return BadRequest(ModelState); 
     } 

     Console.WriteLine(entry); 

     return Ok(entry); 
    } 

答えて

0

掲載情報

public class LoginModel { 
    public string username { get; set; } 
    public string password { get; set; } 
} 

を保持し、アクションを更新するためにモデルを作成します。 〜を期待するからの帽子

public IActionResult Login([FromForm] LoginModel entry) { 
    if (!ModelState.IsValid) { 
     return BadRequest(ModelState); 
    } 
    // access the username and password 
    var username = entry.username; 
    var password = entry.password; 

    return Ok(); 
} 
+0

これは唯一の解決策ですか?つまり、モデルを作成しないと解決策がありますか? –

関連する問題