编程语言
首页 > 编程语言> > CodeGo.net>如何使在Asp.Net核心可重用控制器

CodeGo.net>如何使在Asp.Net核心可重用控制器

作者:互联网

我正在做我的第一个Asp.Net Core项目,该项目同时支持Web客户端和Game客户端(用Unity编写).

现在,我从Visual Studio 2015提供的默认Asp.Net Core Web应用程序项目模板开始,包括对单个用户帐户的身份验证.

大多数(如果不是全部)生成的控制器都返回视图,通常遵循以下模式:

    [HttpGet]
    [AllowAnonymous]
    public IActionResult Get()
    {
        //Do something smart
        return View();
    }

如您所见,此方法返回一个View,并且在Web客户端请求时一切正常.
但是,如果游戏将请求发送到相同的方法怎么办?
在那种情况下,需要一个JSON响应(而不是View / html文档),我的问题是在Asp.Net Core中支持此功能的推荐“模式”是什么?

我应该将返回JSON的api放在单独的控制器中,从而重复一些逻辑吗?我觉得不对劲…

还是应该检查请求以获取预期的响应格式,并基于此实现返回不同响应的逻辑?
我也不特别喜欢这种方法…

对我来说,Asp.Net Core似乎直接通过API提供UI格式的响应来弄乱事情,但这可能是我在这里错过的事情…

有指针吗?

解决方法:

如果您想要网页和游戏的单独控制器或动作,则可以将逻辑移到控制器要调用的类中.

这样做会更好,并且遵循单一责任规则,而不是一个动作返回两种响应类型

标签:asp-net-core,asp-net-core-mvc,json,c
来源: https://codeday.me/bug/20191111/2021970.html