【发布时间】:2016-04-07 16:04:01
【问题描述】:
我有一个需要返回 MVC 样式视图的 Web Api 项目。我已经制作了我的 MVC 控制器
public class MVCController: Controller
{
[HttpGet]
[Route("api/mvc/test")]
public ActionResult test()
{
return View();
}
}
但是,当我尝试从 Web 访问此控制器时,我似乎无法访问控制器。我收到以下错误:
{"Message":"未找到与请求 URI 'http://localhost/foo/api/mvc/test'匹配的 HTTP 资源。","MessageDetail":"未找到与名为 'mvc' 的控制器匹配的类型。"}
在google上搜索后,人们似乎告诉我将webapiconfig中的路由属性更改为
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
但我似乎仍然没有运气。如果我将我的控制器更改为 webapi 控制器,那么
public class MVCController: ApiController
{
[HttpGet]
[Route("api/mvc/test")]
public IHttpActionResult test()
{
return Ok();
}
}
我可以联系到控制器。如果有人能给我一些关于正在发生的事情的见解,我将不胜感激。
更新 阅读下面的回复后,我将控制器更新为如下所示:
public class MVCController: Controller
{
[HttpGet]
public ActionResult test()
{
return View();
}
}
但是,localhost/MVCController/test 似乎仍然给我一个 404 错误,并且控制器没有被击中。顺便说一句,对不起我的新手。
【问题讨论】:
-
并且 api 只是在测试,因为我认为将 mvc 控制器格式化为与 web-api 相同的方式会有所帮助。这是一个绝望的措施LOOL
标签: asp.net-mvc asp.net-mvc-4 asp.net-web-api