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

发布于 2022-09-02 14:54:14 字数 1098 浏览 11 评论 0

图片描述

如上图,在一个控制器中有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();
            }
        }
    }

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

鲜肉鲜肉永远不皱 2022-09-09 14:54:14

我已经解决了,因为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 }
            );
        }
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文