为具有属性路由的操作创建 URL

Create URL for action with attribute routing

我在控制器中使用 ASP.NET MVC 5 属性路由进行操作。

public class HomeController : BaseController
{
  [Route("{srcFileFormat}-to-{dstFileFormat}")]
  public ActionResult Converter(string srcFileFormat, string dstFileFormat)
  {
  }
}

我正在尝试创建 url 并且总是得到 Null 而不是 URL。关于如何在我的情况下一起使用 UrlHelper.ActionAttribute Routing 有什么建议吗?

@Url.Action("docx-to-pdf", "Home")

Url.Action 中,我们指定控制器名称和操作方法名称,而不是您尝试的路由命名或参数。

我们通常通过以下方式获取控制器操作的 url:

@Url.Action("Converter", "Home")

但是由于您的操作方法也需要两个参数,而您正试图将它们传入,因此您需要调用它来传递参数,例如:

@Url.Action("Converter", "Home", new {srcFileFormat ="doc",dstFileFormat="pdf"})

现在它应该生成 url 像:

localhost:6087/doc-to-pdf