MVC 4网络API路由 - 路由URL使用相对路径

MVC 4网络API路由 - 路由URL使用相对路径

问题描述:

问题: 我试图调用从本地主机的ApiController:XXXX /主页/ TestPage并获得了404所请求的URL:/首页/ API /测试无法找到。MVC 4网络API路由 - 路由URL使用相对路径

如果我从Index.cshtml页面调用它,它可以正常工作,我可以导航到localhost:xxxx/api/Test并查看所需的JSON。我已经尝试将〜/添加到我的MapHttpRoute routeTemplate,但会引发异常。

问题: 如何从URL请求中删除/ Home?

另一个例子是,如果我在页面localhost:xxxx/People/TestPage,并且我想打多个URI,比如localhost:xxxx/api/Hobbies,localhost:xxx/api/Pets和locahost:xxx/API /辆。我将如何设置自定义路由来处理这个问题?至于现在的默认路由,我收到错误,它找不到/ People/api/Hobbies等等。

SOLUTION(可能): 我创建与routeTemplate定制MapHttpRoute: “{PAGE}/API/{}控制器/(编号)” 和它的作品,但我不完全理解为什么,如果这是不是很好的做法。

家是您的默认HTTP控制器。 Home/api/Test不是有效的Web API控制器路由,除非您创建了自定义路由。开箱默认的web api路由是api/{controller}/{id}。所以,如果你有一个叫做home的API控制器,它的URL将是localhost/api/home/id

+0

我还是很困惑。我怎样才能创建自定义路线?现在,.cshtml文件位于视图的主目录中。我试图访问TestController,但得到我列出的错误。我尝试将我的routeTemplate更改为“〜/ api/{controller}/{id}”,但引发异常。 – VtoCorleone 2012-07-09 20:41:46

+0

测试控制器是API控制器还是HTTP控制器? – Maess 2012-07-10 12:25:02