首页 > 解决方案 > 从 ASP.NET MVC 5 中现有的控制器操作将 JSON 结果返回到 API 调用

问题描述

我是 ASP.NET WebApi 的新手。我正在开发一个 ASP.NET MVC 5 项目。

当我开始它时,它并没有考虑到 WebApi 功能。我继续在此基础上进行建设。到目前为止,它完全是一个 MVC 项目。我编写了很多控制器,其中包含各种操作,例如从数据库中获取查询结果。

现在我想为项目添加 WebApi 支持。例如:我有一个控制器动作,它从数据库中获取一堆数据。现在,我需要以 JSON 格式返回数据。

我的问题是,我是否需要再次编写所有此类函数来获取数据并将其作为 JSON 返回?我在各种控制器上确实有很多动作。再次重写这些动作将是很多工作。如果可能的话,如何在代码添加最少的情况下做到这一点,同时又不破坏当前 MVC 项目的正常运行?

这只是其中一个 MVC 控制器中的操作示例:

public string GetName()
{
    string constr = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;
    string stud_name;

    using (SqlConnection con = new SqlConnection(constr))
    {
        SqlCommand cmd = new SqlCommand('SELECT name FROM Table WHERE id = 232', con);

        stud_name = Convert.ToString(cmd.ExecuteScalar());

    }

    return stud_name;

}

我前段时间写过这个函数。还有其他几个这样的,它们返回其他东西。考虑到此操作,如何将字符串作为 JSON 对象返回给 api 调用?有没有办法在不重写 ApiController 的函数的情况下做到这一点?

标签: c#asp.netasp.net-mvcasp.net-web-apiasp.net-web-api2

解决方案


您可以将方法添加到公共类并从两种控制器的操作方法中调用这些方法。


推荐阅读