当前位置: 首页 > 知识库问答 >
问题:

如何在ASP.NET内核中制作可重用控制器

牧业
2023-03-14

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

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

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

此方法返回一个您可以看到的视图,当web客户机请求时,一切都很好。但是如果游戏正在向相同的方法发送请求呢?在这种情况下,需要一个JSON响应(不是view/html文档),我的问题是在ASP.NET核心中支持这个的推荐“模式”是什么?

共有1个答案

能向晨
2023-03-14

当返回类型为IActionResult时,还可以返回Json消息,例如return Json(myReturnObject)。您可以添加if来返回JSON消息,当消息为false时,它将返回视图。

您可以根据x-requested-with添加if:

if (Request.Headers["X-Requested-With"] == "XMLHttpRequest")
{
    return Json(myObject);
}

我建议按响应类型在不同的控制器方法中拆分请求,并将共享代码/逻辑添加到一个私有方法或另一个类中,您可能也会在其他地方使用此方法。通过这样做,您将能够进行适当的测试,并且不会混淆何时返回视图或json消息。

 类似资料: