我已经创建了一个名为WebPortalController的新控制器,但是当我通过浏览器调用它或尝试调用它时,我无法访问下面的方法,只是说找不到资源。如果需要,我是否需要向RoutesConfig.cs代码添加新的路由?
namespace WebApi.Controllers
{
public class WebPortalController : ApiController
{
// GET api/webportal
private WebPortEnterpriseManagementDa _da = new WebPortEnterpriseManagementDa();
public ManagedType Get(string name)
{
ManagedType items = _da.GetManagedType(name);
return items;
}
// POST api/webportal
public void Post([FromBody]string value)
{
}
// PUT api/webportal/5
public void Put(int id, [FromBody]string value)
{
}
// DELETE api/webportal/5
public void Delete(int id)
{
}
}
}路由文件
namespace WebApi
{
public class RouteConfig
{
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
}
}发布于 2014-08-15 22:17:35
您所显示的路由配置用于MVC路由,位于App_Start/RouteConfig文件中。检查App_Start/WebApiConfig中是否设置了默认API路由:
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);然后,您需要更改Get方法中的参数名称以匹配路由参数:
public ManagedType Get(string id)
{
ManagedType items = _da.GetManagedType(name);
return items;
}这应该允许您使用以下命令通过浏览器调用Get方法:
localhost:55304/api/WebPortal/Testhttps://stackoverflow.com/questions/25325631
复制相似问题