【发布时间】:2016-11-16 05:23:07
【问题描述】:
我们目前正在 Oracle DB 中查看。我们需要创建一个接受输入参数并在 Oracle DB 中查询视图并以 JSON 格式返回响应的 Web API。我是 ASP.NET 和 Web 服务的新手。下面是服务代码
namespace TGSSample.Controllers
{
public class TGSSampDataController : ApiController
{
public HttpResponseMessage Getdetails([FromUri] string id)
{
List<OracleParameter> prms = new List<OracleParameter>();
List<string> selectionStrings = new List<string>();
string connStr = ConfigurationManager.ConnectionStrings["TGSDataConnection"].ConnectionString;
using (OracleConnection dbconn = new OracleConnection(connStr))
{
DataSet userDataset = new DataSet();
var strQuery = "SELECT * from LIMS_SAMPLE_RESULTS_VW where JRS_NO =" + id;
var returnObject = new { data = new OracleDataTableJsonResponses(connStr, strQuery, prms.ToArray()) };
var response = Request.CreateResponse(HttpStatusCode.OK, returnObject, MediaTypeHeaderValue.Parse("application/json"));
ContentDispositionHeaderValue contentDisposition = null;
if (ContentDispositionHeaderValue.TryParse("inline; filename=ProvantisStudyData.json", out contentDisposition))
{
response.Content.Headers.ContentDisposition = contentDisposition;
}
return response;
}
}
我正在尝试调试,并且在我提供的 URL 中,例如 http://localhost:6897/api/TGSSampData?id=379,但它会引发错误,例如在此处输入图像描述 我没有对 RouteConfig.cs 或 WebApiConfig.cs 进行任何更改。
namespace TGSSample
{
public static class WebApiConfig
{
public static void Register(HttpConfiguration config)
{
config.MapHttpAttributeRoutes();
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
); }}}
【问题讨论】:
-
您的错误消息显示您尝试了
/api/TGSData而不是/api/TGSSampData- 这可能是问题吗? -
显示 webapiconfig
-
在您的路径 /api/TGSData 上找不到控制器,这就是错误告诉您的内容。此外,您在构建查询时出错。您的 id 应该在 '' 中,但最好使用 OracleCommandParameters !
-
@Beno 我很抱歉。我尝试更改应用程序并错过更新屏幕截图。我已经更新了问题
-
@Nkosi 我已经用 WebApiConfig.cs 更新了我的问题
标签: c# asp.net asp.net-mvc asp.net-web-api asp.net-web-api-routing