Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/317.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在Xamarin.Forms中正确地将字符串id传递给API控制器_C#_Api_Xamarin.forms_Mobile_Webapi - Fatal编程技术网

C# 如何在Xamarin.Forms中正确地将字符串id传递给API控制器

C# 如何在Xamarin.Forms中正确地将字符串id传递给API控制器,c#,api,xamarin.forms,mobile,webapi,C#,Api,Xamarin.forms,Mobile,Webapi,我正在使用Xamarin表单编写一个移动应用程序,我将在其中使用RESTAPI 目前,我有一个用户模型 { public string UserId { get; set; } public string UserDisplayName { get; set; } public int UserRoleId { get; set; } public string UserFirstName { get; set; }

我正在使用Xamarin表单编写一个移动应用程序,我将在其中使用RESTAPI

目前,我有一个用户模型

    {
        public string UserId { get; set; }
        public string UserDisplayName { get; set; }
        public int UserRoleId { get; set; }
        public string UserFirstName { get; set; }
        public string UserLastName { get; set; }
        public string UserEmail { get; set; }
        public string UserPostcode { get; set; }
        public DateTime UserCreatedAt { get; set; }
        public DateTime UserModifiedAt { get; set; }
        public bool UserDeletedAt { get; set; }
    }
我在我的控制器上定义了一个GetUser方法

 // GET: api/Users/5
        [HttpGet("{id}")]
        public async Task<ActionResult<User>> GetUser(string id)
        {
            
            var user = await _context.User.FindAsync(id);

            if (user == null)
            {
                return NotFound();
            }

            return user;
        }

事实证明,问题是由任务定义上的IEnumerable类型引起的,这很有意义,因为我试图检索单个实例

服务方法更改为

     public static async Task<User> GetUserById(string id)
        {           
            var json = await client.GetStringAsync($"api/users/{id}");
            var users = JsonConvert.DeserializeObject<User>(json);
            return users;
        }
     public static async Task<User> GetUserById(string id)
        {           
            var json = await client.GetStringAsync($"api/users/{id}");
            var users = JsonConvert.DeserializeObject<User>(json);
            return users;
        }
公共静态异步任务GetUserById(字符串id)
{           
var json=await client.GetStringAsync($“api/users/{id}”);
var users=JsonConvert.DeserializeObject(json);
返回用户;
}

首先,这些
是“引号”,而不是“逗号”。这个
是一个“逗号”。其次,不清楚为什么不能在移动客户端中使用“/api/Users/Example”。你能发布一些说明问题的代码吗?parsedString.Trim(“”),但还有一些其他字符不能在routeparameters中使用。但在查询中提供它们作为编码值将起作用allways@Jason-不知道我输入的是“逗号”而不是“引号”,我的错。我已经用服务方法和服务调用编辑了问题。我希望这有助于说明问题?!不,没有
GetUserById(“示例”)
将导致url
api/users/Example
-这是如何导致问题的?除非我遗漏了非常明显的内容,否则它似乎会导致url api/users/“Example”,返回“not found”。我现在没有工作机器,几小时后我可以再次检查。如果我发现什么,我会回来报到。谢谢
     public static async Task<User> GetUserById(string id)
        {           
            var json = await client.GetStringAsync($"api/users/{id}");
            var users = JsonConvert.DeserializeObject<User>(json);
            return users;
        }