问题: 我试图从 localhost:xxxx/Home/TestPage 调用 ApiController 并得到一个 404 请求的 URL:/Home/api/Test 找不到。
如果我从 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/Vehicles。我将如何设置自定义路由来处理这个问题?截至目前,使用默认路由时,我收到无法找到 /People/api/Hobbies 等的错误消息。
解决方案(可能):我使用 routeTemplate: "{page}/api/{controller}/{id}" 创建了一个自定义 MapHttpRoute,它可以工作,但我不完全理解为什么以及这是否是好的做法。