使用属性路由创建操作的URL

时间:2018-03-02 12:11:16

标签: c# asp.net-mvc asp.net-mvc-5 asp.net-mvc-routing attributerouting

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

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

我正在尝试创建网址并始终获取 Null 而不是网址。有关如何在我的案例中一起使用UrlHelper.ActionAttribute Routing的任何建议吗?

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

1 个答案:

答案 0 :(得分:3)

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

我们通常采用以下方式获取控制器操作的URL:

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

但是,由于你的动作方法也需要两个参数而你试图传递它们,你需要调用它来传递参数,例如:

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

现在它应该生成如下的网址:

localhost:6087/doc-to-pdf