2017-09-26 411 views
0

我正在使用Asp.Net Core 2.0和web api來構建一個休息服務。除了HTTPPost之外,所有的工作都很好。什麼原因導致參數爲空?

[HttpPost("LoginUser")] 
public IActionResult LoginUser(LoginUser loginUser) 
{ 
    return Ok(loginUser); 
} 

loginUser始終爲空。我與小提琴手的測試,我的路線是http://localhost:53250/api/User/LoginUser

而且身體

{"EmailAddress":"[email protected]","Password":"123456789"} 

提琴手命中鏈接就好了,但有效載荷始終爲空。

我也曾嘗試

[HttpPost("LoginUser")] 
public IActionResult LoginUser([FromBody] LoginUser loginUser) 
{ 
    return Ok(loginUser); 
} 

在這種情況下,不打功能。

這是LoginUser定義:

public class LoginUser 
{ 
    public string EmailAddress { get; set; } 
    public string Password { get; set; } 
} 

什麼想法?

+0

本地測試,它的工作原理。測試郵差,選擇郵政,身體 - >原始和鍵入JSON,它爲我工作 – hardkoded

+1

也注意到你的行動不應該'無效'。返回'IActionResult' – Nkosi

+0

與郵遞員相同的結果。你在使用核心2.0嗎? –

回答

0

問題已解決。當我添加我的UserController時,我做了一個類並從控制器派生。我刪除它,並添加它作爲一個新的項目,並選擇web api核心控制器。現在所有的工作都很好。謝謝你的幫助。

0

JSON解析區分大小寫。你的JSON是錯誤的。 應爲:{「EmailAddress」:「[email protected]」,「密碼」:「123456789」}。

+0

對不起,我從visual studio中複製了轉換。這裏是我從小提琴手發送的內容:{「EmailAddress」:「[email protected]」,「密碼」:「123456789」}。 –

1

你的動作應該是:

[Route("api/[controller]")] 
public class UserController : Controller 
{ 
    [HttpPost("LoginUser")] 
    public IActionResult LoginUser([FromBody] LoginUser loginUser) 
    { 
     return Ok(loginUser); 
    } 
} 

見,[HttpPost("LoginUser")]影響必經之路,不涉及到LoginUser對象類型。

更新:您需要[FromBody]作爲ASP.NET Core model binding默認情況下會查看[FromForm]綁定源。並且[FromBody]屬性指示您要將參數綁定到請求正文中的數據。

更新2:您還應該添加Content-Type: application/json標題來請求。 ASP.NET Core根據此標題選擇輸入格式化程序。

更新3:如果您確實需要將原始數據作爲原始字符串,請查看ASP.NET Core MVC : How to get raw JSON bound to a string without a type?。它建議使用[FromBody] dynamic data

+0

我知道。但我正在通過一個有效的LoginUser將身體對象傳遞給http調用。它仍然是空的... –

+0

@JohnBaird你真的嘗試過這個解決方案嗎?看起來對我來說是正確的。 – Brad

+0

@JohnBaird是否添加了'Content-Type:application/json'標頭?你傳遞json數據的正文,並且你有相應的模型'LoginUser' =>期望body作爲'string'是沒有意義的(就像你在第二個例子中:[FromBody] string loginUser)。 – Set

0
  • 如果您的請求模型中的屬性設置爲{get; private set;},則值將不會填充。通過刪除private來公開它們。也沒有使用構造函數 。

  • 如果您正在從正文中讀取純文本,請參閱[FromForm] 的工作原理。

相關問題