我正在启动一个新的Web api,在其中添加了控制器 SRDSController ,其中有一个 Get 方法,该函数返回一个字符串。但不幸的是,它没有返回它,样板化的asp.net Web api代码也同样返回了它。请帮助
经过大量的Google搜索,我添加了
Global.asax中的GlobalConfiguration.Configuration.EnsureInitialized();
。但是仍然没有解决问题。
Global.asax :
AreaRegistration.RegisterAllAreas();
WebApiConfig.Register(GlobalConfiguration.Configuration);
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
RouteConfig.RegisterRoutes(RouteTable.Routes);
GlobalConfiguration.Configuration.EnsureInitialized();
SRDSController
[RoutePrefix("srds-data")]
public class SRDSController : ApiController
{
private ISRDSService srdsService = null;
public SRDSController()
{
srdsService = new SRDSService();
}
[Route("srds-test")]
[HttpGet]
public string GetTestData()
{
return "SRDS is working";
}
[Route("get-org-detail")]
[HttpPost]
public IHttpActionResult GetOrgDetails(SRDSRequest srdsRequest)
{
var data = srdsService.GetOrgDetails(srdsRequest.OrgNumbers, srdsRequest.UserName);
return Ok(data);
}
}`
到目前为止,每当我运行该应用程序时,它都会使用 http://localhost:59691/Help/ 启动该应用程序,并且它附带了“获取与发布方法”的所有列表。
随时问任何问题
预先感谢
答案 0 :(得分:0)
在我看来,您可能错过了这个电话:
config.MapHttpAttributeRoutes();
这必须在WebApiConfig类的Register方法中完成。有关更多详细信息,请参见Here。我之所以这样说是因为您在操作方法中使用了属性路由。
调用url的原因之所以起作用,是因为在您调用RegisterAllAreas时已注册它。