我是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的函数?
你可以在普通类中添加方法,并从两种类型的控制器的动作方法中调用这些方法。