为id参数和action / id创建MVC路由

时间:2019-02-24 14:06:37

标签: c# asp.net-core .net-core routes

此URL www.mysite.com/Brazil应该路由到该控制器:

public async Task<IActionResult> CountryPage(string countryName)

countryName应该为Brazil

我尝试使用此自定义路线:

routes.MapRoute(
    "Country",
    "{id}",
    new { controller = "Countries", action = "CountryPage", id = "{id}" });

当我的控制器是:

public async Task<IActionResult> CountryPage(string id)

但是我得到的ID都是{id}

这怎么办?

1 个答案:

答案 0 :(得分:2)

为此,您可以利用attribute routing。为此,请使用[Route()]数据注释装饰控制器方法,如下所示。

CountryController.cs

[Route("{country}")]
public IActionResult CountryPage(string country)
{
    return Ok(country);
}

访问https://localhost:44376/Brazil时,应用程序返回:

  

巴西