Dica útil: em qualquer aplicativo ASP.NET, você pode obter uma referência do HttpContext atual
HttpContext.Current
que é derivado de System.Web. Portanto, o seguinte funcionará em qualquer lugar de um aplicativo ASP.NET MVC:
UrlHelper url = new UrlHelper(HttpContext.Current.Request.RequestContext);
url.Action("ContactUs"); // Will output the proper link according to routing info
Exemplo:
public class MyModel
{
public int ID { get; private set; }
public string Link
{
get
{
UrlHelper url = new UrlHelper(HttpContext.Current.Request.RequestContext);
return url.Action("ViewAction", "MyModelController", new { id = this.ID });
}
}
public MyModel(int id)
{
this.ID = id;
}
}
Chamar a Link
propriedade em um objeto MyModel criado retornará o URL válido para exibir o Modelo com base no roteamento em Global.asax