C# 如何在Xamarin.Forms中正确地将字符串id传递给API控制器
我正在使用Xamarin表单编写一个移动应用程序,我将在其中使用RESTAPI 目前,我有一个用户模型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; }
{
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(“示例”)
将导致urlapi/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;
}