我有一个Visual Studio 2015解决方案,其中包含ASP.NET Core Web API以及ASP.NET Core MVC应用程序。
我打算在MVC应用程序中使用API,它们都在同时运行。
例如,API正在localhost:60170
上运行,我的控制器路由到"api/[controller]"
,如下所示:
namespace JobManager.WAPI.Controllers
{
[Route("api/[controller]")]
public class ValuesController : Controller
{
现在,如何在我的MVC应用程序中获取API的路径,而无需硬编码API的路径,即localhost:60170
?
答案 0 :(得分:1)
您的控制器可以同时拥有API方法和MVC方法。
您可以先在Startup.cs
中定义默认的MVC路线:
// mvc
app.UseMvc(routes =>
{
routes.MapRoute(
name: "default",
template: "{controller=Home}/{action=Index}/{id?}");
});
在控制器类中,删除控制器属性[Route("api/[controller]")]
,而不是使用它来装饰控制器类中的特定API方法,例如:
[Route("api/[controller]/XYZ/{..}")]
public IActionResult ABC(..){
}
对于MVC方法,只需正常使用它们:
[HttpGet]
public async Task<IActionResult> Index(..){
}
请勿对localhost
地址进行硬编码。