gpt4 book ai didi

c# - .NET Core Web 应用程序,将对象传递给 Controller ​​并进行转换总是失败

转载 作者:太空宇宙 更新时间:2023-11-03 23:03:17 24 4
gpt4 key购买 nike

我有一个使用 ASP.NET MVC 6 的 .NET Core Web 应用程序。我有一个用于最常见的 CRUD 操作的通用 API Controller 。问题是我有多种不同类型的 ID。例如,我同时拥有 int 和 Guid。

我的通用 Get Controller 如下所示:

// GET api/values/5
[HttpGet("api/[controller]/{id}")]
public virtual async Task<IEntity> Get(object id)
{
var myEntity = await _myRepository.FindAsync(id);
if (myEntity == null)
return ItemNotFound();

return myEntity;
}

如果我将方法参数更改为接受一个 int 而不是一个对象,它就可以正常工作。但是,如果我将对象转换为 int,则会得到无效转换异常。有没有办法成功地将对象转换为我期望的样子?

最佳答案

我是否认同你的设计,不在本问答范围内。但要解决您的问题,您可以这样做:

public virtual async Task<IEntity> Get(string id)
{
var parsedId;
if (int.TryParse(id, out parsedId))
{
// It was an integer
}
else
{
if (Guid.TryParse(id, out parsedId))
{
// It was a Guid
}
else
{
// It was neither so what do you want to do?
}
}
}

关于c# - .NET Core Web 应用程序,将对象传递给 Controller ​​并进行转换总是失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42282106/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com