.net webapi 一个api控制器中不能有多个方法?

图片描述

如上图,在一个控制器中有2个方法, 当2个方法都存在是这个控制器的2个方法都不能被使用,用ajax请求得到500的错误!
如果删除其中一个,即只保留一个,那么这个方法却能正常运行! 表明方法都没有错,奇怪为什么放在一起之后就都不能被使用了呢?

C#代码:

public class companynewController : ApiController

{

public int getAlldataNum()

{

using (zhuaotechEntities context = new zhuaotechEntities())

{

return context.companynews.Count<companynew>();

}

}

public List<companynew> getIndexdata()

{

using (zhuaotechEntities context = new zhuaotechEntities())

{

return context.Database.SqlQuery<companynew>("select * from CompanyNews ORDER BY CompanyNews.date desc LIMIT @startnum,@pagenum ", new MySqlParameter[] {

new MySqlParameter("@startnum", (object)0),

new MySqlParameter("@pagenum",4)

}).ToList();

}

}

}

回答:

我已经解决了,因为webapi默认的路由是restful风格的,里面没有action,把路由重新配置就好了:

public static void Register(HttpConfiguration config)

{

// Web API 配置和服务

// 将 Web API 配置为仅使用不记名令牌身份验证。

config.SuppressDefaultHostAuthentication();

config.Filters.Add(new HostAuthenticationFilter(OAuthDefaults.AuthenticationType));

// Web API 路由

config.MapHttpAttributeRoutes();

config.Routes.MapHttpRoute(

name: "DefaultApi",

routeTemplate: "api/{controller}/{action}/{id}",

defaults: new { id = RouteParameter.Optional }

);

}

以上是 .net webapi 一个api控制器中不能有多个方法? 的全部内容, 来源链接: utcz.com/p/190388.html

回到顶部