簡體   English   中英

C#、NetCore 3.0 - 方法:[HttpGet]

[英]C#, NetCore 3.0 - Method : [HttpGet]

我在從特定用戶的數組中檢索數據時遇到問題 - 數組中有很多用戶,我想為 label1.Text 中指定的用戶檢索數據 所以 - 第一個:

public async Task load_data()
        {              
            var doing = await client.GetAllAsync(label1.Text);
            foreach (var dane in doing )
            {
                lbItems_1.Items.Add(dane.Name);
                lbItems_2.Items.Add(dane.Age);
                lbItems_3.Items.Add(dane.Data);
            }
        }

下一個: GetAllAsync()

public async Task<IEnumerable<Table_test>> GetAllAsync(string user_name)
{
var response = await client.GetAsync(_baseUrl + "/api/user/" + user_name);
}

最后一節課:

[HttpGet]
        public async Task<IActionResult> Get(string user_name)
        {
            using (var c = new MySqlConnection(con_sql.MySQL))
            {
                var sql = @"SELECT * FROM table_test WHERE username = @username";
                var query = c.Query<Models.Table_test >(sql, new { username = user_name}, commandTimeout: 30);                
                return Ok(query);
            }
        }

我認為它很好地傳遞了參數 - 但是當我嘗試為適當的用戶下載數據時,我有:NotFound 代碼

為什么? 想法?

謝謝你。

您應該能夠在HttpGet屬性中的端點上指定路由參數:

[HttpGet("{user_name}")]
public async Task<IActionResult> Get(string user_name) 
{ 
    using (var c = new MySqlConnection(con_sql.MySQL)) 
    { 
        var sql = @"SELECT * FROM table_test WHERE username = @username"; 
        var query = c.Query<Models.Table_test >(sql, new { username = user_name}, commandTimeout: 30); 
        return Ok(query); 
    } 
}

另一種選擇是使用查詢參數調用端點:

public async Task<IEnumerable<Table_test>> GetAllAsync(string user_name) 
{ 
    var response = await client.GetAsync(_baseUrl + "/api/user?user_name=" + user_name); 
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM