【发布时间】:2015-08-13 04:33:13
【问题描述】:
我已经启动了一个 web api 项目,我正在尝试向我现有的控制器添加一个新操作。这是我的控制器代码和配置:
namespace QAServices.Controllers
{
public class HomeController : Controller
{
public ActionResult Index()
{
ViewBag.Title = "Home Page";
return View();
}
//[Route("Home/Welcome")] I have also tried this but it doesn't work.
public HttpResponseMessage Welcome()
{
HttpResponseMessage response = new HttpResponseMessage();
response.StatusCode = HttpStatusCode.OK;
return response;
}
public ActionResult ProductPage()
{
return View();
}
}
}
路由配置
namespace QAServices
{
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 }
);
}
}
}
WebApiConfig
namespace QAServices
{
public static class WebApiConfig
{
public static void Register(HttpConfiguration config)
{
// Web API configuration and services
// Configure Web API to use only bearer token authentication.
config.SuppressDefaultHostAuthentication();
config.Filters.Add(new HostAuthenticationFilter(OAuthDefaults.AuthenticationType));
// Web API routes
config.MapHttpAttributeRoutes();
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "{controller}/{action}/{id}",
defaults: new { action = "GET", id = RouteParameter.Optional }
);
}
}
}
当我尝试运行我的新操作时,出现以下错误:
<Error>
<Message>
No HTTP resource was found that matches the request URI 'http://localhost:1095/Home/Welcome'.
</Message>
<MessageDetail>
No type was found that matches the controller named 'Home'.
</MessageDetail>
</Error>
我已经关注了这些,但无法找出问题所在:
【问题讨论】: