Asp.net Web API 按动作名称修复路由
Asp.net Web API Routing by action name fix
我在 asp.net 学习网站上找到了这个 article。我使用这篇文章来帮助我创建一个 API 方法来通过电子邮件而不是 id 在数据库中进行搜索。
但是,如果您看一下这篇文章,您将能够帮助我解决以下问题:
我的控制器:
[HttpGet]
public string Details(string email);
[HttpGet]
[ActionName("Email")]
public HttpResponseMessage GetEmail(string email);
我的 WebApiConfig class
config.Routes.MapHttpRoute(
name: "EmailApi",
routeTemplate: "api/{controller}/{action}/{id}",
defaults: new { id = RouteParameter.Optional }
);
首先,我得到的Details方法的错误如下:
(Error 1 'MyApp.Controllers.UsersController.Details(string)' must
declare a body because it is not marked abstract, extern, or
partial D:\Abdulrhman A A\MyApp\Asp.net Web
API\Controllers\UsersController.cs 40 27 MyAppApplication)
其次,我获取的GetEmail方法报错如下:
(Error 2 'MyApp.Controllers.UsersController.GetEmail(string)' must
declare a body because it is not marked abstract, extern, or
partial D:\Abdulrhman A A\MyApp\Asp.net Web
API\Controllers\UsersController.cs 44 43 MyAppApplication)
本文提供了有关如何配置路由的示例。最后两个示例仅用于说明目的,它更像是伪代码,而不是工作代码。如果您刚开始使用 C#,这些最后的代码示例会令人困惑。
您收到的错误清楚地描述了正在发生的事情 - 您需要一个方法体。要修复它,而不是在末尾添加 ;
添加 {}
并实际实现方法:
[HttpGet]
public string Details(string email)
{
// Implement your method, so it returns string
}
[HttpGet]
[ActionName("Email")]
public HttpResponseMessage GetEmail(string email)
{
// Implement your method so it returns HttpResponseMessage
}
我在 asp.net 学习网站上找到了这个 article。我使用这篇文章来帮助我创建一个 API 方法来通过电子邮件而不是 id 在数据库中进行搜索。
但是,如果您看一下这篇文章,您将能够帮助我解决以下问题:
我的控制器:
[HttpGet]
public string Details(string email);
[HttpGet]
[ActionName("Email")]
public HttpResponseMessage GetEmail(string email);
我的 WebApiConfig class
config.Routes.MapHttpRoute(
name: "EmailApi",
routeTemplate: "api/{controller}/{action}/{id}",
defaults: new { id = RouteParameter.Optional }
);
首先,我得到的Details方法的错误如下:
(Error 1 'MyApp.Controllers.UsersController.Details(string)' must declare a body because it is not marked abstract, extern, or partial D:\Abdulrhman A A\MyApp\Asp.net Web API\Controllers\UsersController.cs 40 27 MyAppApplication)
其次,我获取的GetEmail方法报错如下:
(Error 2 'MyApp.Controllers.UsersController.GetEmail(string)' must declare a body because it is not marked abstract, extern, or partial D:\Abdulrhman A A\MyApp\Asp.net Web API\Controllers\UsersController.cs 44 43 MyAppApplication)
本文提供了有关如何配置路由的示例。最后两个示例仅用于说明目的,它更像是伪代码,而不是工作代码。如果您刚开始使用 C#,这些最后的代码示例会令人困惑。
您收到的错误清楚地描述了正在发生的事情 - 您需要一个方法体。要修复它,而不是在末尾添加 ;
添加 {}
并实际实现方法:
[HttpGet]
public string Details(string email)
{
// Implement your method, so it returns string
}
[HttpGet]
[ActionName("Email")]
public HttpResponseMessage GetEmail(string email)
{
// Implement your method so it returns HttpResponseMessage
}