c# - 如何在 Asp.Net Core 中制作可重用的 Controller

标签 c# json asp.net-core asp.net-core-mvc

我正在开发我的第一个 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/

相关文章:

java - 将 json 数据写入和读取到内部存储 android

javascript - 如何使用 json 中的变量在 preload() 函数中调用另一个 json?

java - 如何告诉 Jackson 反序列化非缺失字段上的更新值(包括嵌套字段)

asp.net-core - 重新设计Abp.IdentityServer(身份服务器4)的UI

asp.net-core - ASP.NET Core 2.0.3 ClaimsTransformer 与 HttpContextAccessor 结合使用,正在清除声明

C# 用于脚本文件的脚本 (csx) 位置

c# - 使用 Reactive Extensions 进行数据库轮询

c# - 在 ASP.Net Core 2.0 中因任何原因停止 Kestrel 时执行清理

C# 你打算调用方法吗

c# - 如何使用 LINQ 查询复杂的 XML 文档?