首页 > 解决方案 > 与 Web API 应用程序中的控制器名称不同的路由模板

问题描述

我是 ASP.NET Web 应用程序中 WebAPI 的新手,我正在关注一个没有解决这种混淆的 YouTube 教程,我会说混淆,因为它本身不是错误。

所以我正在使用 MVC 实体框架制作一个简单的 WEB API。我拥有的数据库模型名称是DBModel.cs另一个文件Employeetbl.cs,它也与我在 ADO.NET 文件中提到的数据库中的表同名,控制器名称是EmpController.cs.

现在里面EmpController.cs我有这样的东西

public class EmpController : ApiController
{
    private EmployeeDBEntities db = new EmployeeDBEntities();

    // GET: api/Emp
    public IQueryable<Employeetbl> GetEmployeetbls()
    {
        return db.Employeetbl;
    }

api 行是api/Emp,不应该是api/Employeetbl。我做错了什么,还是我必须手动更改?谢谢。

标签: c#asp.net-mvcasp.net-web-api

解决方案


回答您的问题有点困难,因为您需要阅读更多关于 WEB API 和 Web API 路由的内容。api/Emp提到您的控制器名称而EmpController不是您的类名称。Employeetbl它只是您从GetEmployeetbls操作中返回的一个类。看到这个代码

 config.Routes.MapHttpRoute(
        name: "DefaultApi",
        routeTemplate: "api/{controller}/{id}",
        defaults: new { id = RouteParameter.Optional }
    );

它是路由配置和一些属性,例如[Route("api/..")][RoutePrefix("api/..")]可用于为操作制定更好的路由。

无论如何,这个链接可以帮助你了解 Web API 路由

我希望这个链接可以帮助你。


推荐阅读