c# - .net webapi 一个api控制器中不能有多个方法?
本文介绍了c# - .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 }
);
}
这篇关于c# - .net webapi 一个api控制器中不能有多个方法?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文