atl*_*per 2 c# asp.net-mvc asp.net-mvc-4
我在新的MVC 5应用程序中找不到控制器路径.我一直在关注一些教程,一切看起来都写得不错,但是当浏览浏览器中的地址时,我总是得到:
找不到与请求URI"// localhost:50473/api/tile"匹配的HTTP资源
/Controller/ProductController.cs
using System;
using System.IO;
using System.Web;
using System.Net;
using coal.Models;
using System.Linq;
using System.Text;
using System.Net.Http;
using System.Web.Http;
using System.Collections.Generic;
namespace coal.Controllers
{
public class ProductController : ApiController
{
public void GetAllProducts() { }
[HttpGet]
public string Tiles(string urls) { }
}
}
Run Code Online (Sandbox Code Playgroud)
/App_Start/WebApiConfig.cs
namespace coal
{
public static class WebApiConfig
{
public static void Register(HttpConfiguration config)
{
// Web API configuration and services
// Web API routes
config.MapHttpAttributeRoutes();
config.Routes.MapHttpRoute(
name: "Default",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
config.Routes.MapHttpRoute(
name: "api",
routeTemplate: "api/{controller}/{id}",
defaults: new { controller = "coal", action = "Index", id = "" }
);
}
}
}
Run Code Online (Sandbox Code Playgroud)
我知道我错过了什么,只是无法弄清楚它是什么.任何见解都会有所帮助
谢谢
您的方法的名称是Tiles,但您正试图命中tile.
public string Tiles(string urls) { }
Run Code Online (Sandbox Code Playgroud)
此外,您的路由定义为api/{controller}/{action},您的控制器名称是ProductController.
您应该使用的URL是:api/product/tiles,除非您创建将Product/tiles行动映射到api/tiles路线的路线.
你的路线应该是这样的:
config.Routes.MapHttpRoute(
name: "Default",
routeTemplate: "api/{controller}/{action}/{id}",
defaults: new { id = RouteParameter.Optional }
);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
13662 次 |
| 最近记录: |