c# - 从 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 的函数的情况下做到这一点?
解决方案
您可以将方法添加到公共类并从两种控制器的操作方法中调用这些方法。
推荐阅读
- python - Not getting column headers on loading csv file in python
- angular - A problem with push function in angular, how to format the form group before push?
- python - Python根据指定坐标对齐两个图像
- mysql - MySQL:插入...如果计数 <= 库存其他不做
- hyperledger-fabric - Hyperledger Node SDK - 握手失败并出现致命错误 SSL 例程:tls_process_server_certificate:certificate verify failed
- javascript - 未处理的拒绝(错误):操作必须是普通对象。使用自定义中间件进行异步操作。反应 + 还原
- java - 使用流api java从内部列表中删除元素
- c - 在 Windows 中使用 cJSON
- python - 我可以对时间数组进行拉普拉斯逆变换吗?
- java - 由于ArrayList实现了RandomAccess接口,遍历时是否比Array快