在ASP.NET MVC 5中,从已经存在的Controller动作中返回JSON结果给API调用。

问题描述 投票:0回答:1

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

当我开始做这个项目的时候,它并没有考虑到WebApi的功能。我一直在构建它。到现在为止,它完全是一个MVC项目。我已经编写了很多Controllers,其中包含各种操作,比如从DB中获取查询结果。

现在我想在项目中添加WebApi支持。例如:我有一个控制器动作,它从DB中获取了一堆数据。现在,我需要以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.net asp.net-mvc asp.net-web-api asp.net-web-api2
1个回答
1
投票

你可以在普通类中添加方法,并从两种类型的控制器的动作方法中调用这些方法。

© www.soinside.com 2019 - 2024. All rights reserved.