我正在开发我的第一个 Asp.Net Core 项目,它支持网络客户端和游戏客户端(用 Unity 编写)。
现在,我开始使用 Visual Studio 2015 提供的默认 Asp.Net Core Web 应用程序 项目模板,包括个人用户帐户的身份验证。
大多数(如果不是全部)生成的 Controller 都返回 View ,通常遵循以下模式:
[HttpGet]
[AllowAnonymous]
public IActionResult Get()
{
//Do something smart
return View();
}
如您所见,此方法返回一个 View ,并且在网络客户端请求时一切正常。 但是,如果游戏正在向相同的方法发送请求怎么办? 在那种情况下,需要一个 JSON 响应(不是 View/html 文档),我的问题是在 Asp.Net Core 中支持这个的推荐“模式”是什么?
我是否应该将返回 JSON 的 api 放在单独的 Controller 中,从而重复一些逻辑?我觉得不对……
或者我应该检查预期响应格式的请求,并基于此实现返回不同响应的逻辑? 我也不是特别喜欢这种方法......
对我来说,Asp.Net Core 直接从 API 提供 UI 格式的响应似乎把事情搞砸了,但这可能是我在这里错过的东西......
有什么建议吗?
最佳答案
如果您希望网页和游戏有单独的 Controller 或操作,您可以将逻辑移动到 Controller 调用的类中。
这会更好并且遵循单一责任规则而不是一个操作返回两种响应类型
关于c# - 如何在 Asp.Net Core 中制作可重用的 Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42133632/