【发布时间】:2015-05-18 16:28:21
【问题描述】:
不太清楚我错过了什么
标准 webapiconfig.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web.Http;
namespace MROVendorWebAPI
{
public static class WebApiConfig
{
public static void Register(HttpConfiguration config)
{
// Web API configuration and services
// Web API routes
config.MapHttpAttributeRoutes();
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
}
}
}
相当基本的控制器
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Web.Http;
using MROVendorWebAPI.Models;
namespace MROVendorWebAPI.Controllers
{
public class VSMRICSController : ApiController
{
public IEnumerable<DB2VsmRicRecord> GetDB2VsmRicRecords()
{
string ErrorDescription = "";
DB2VsmRicCollection myDB2VsmRicCollection = new DB2VsmRicCollection();
if (myDB2VsmRicCollection.CreateCollection(ref ErrorDescription))
{
return myDB2VsmRicCollection.oDB2VsmRicList;
}
return null;
}
public DB2VsmRicRecord GetDB2VsmRicRecord(string ric)
{
string ErrorDescription = "";
DB2VsmRicCollection myDB2VsmRicCollection = new DB2VsmRicCollection();
if (myDB2VsmRicCollection.CreateCollection(ref ErrorDescription))
{
return myDB2VsmRicCollection.oDB2VsmRicList.FirstOrDefault(p => p.Ric == ric);
}
return null;
}
}
}
使用 /api/VSMRICS 可以正常工作并返回整个集合 并且使用 /api/VSMRICS?RIC=SAH 可以正常工作并且只返回一条记录,但是 /api/VSMRICS/SAH 会返回整个集合。不知道为什么我需要在控制器中为这个方法添加某种路由?
【问题讨论】:
标签: asp.net-web-api asp.net-web-api-routing