pomocna wskazówka, w dowolnej aplikacji ASP.NET, można uzyskać odwołanie obecnego HTTPContext
HttpContext.Current
który pochodzi z system.Web. Dlatego dodaje się będzie pracować w dowolnym miejscu w aplikacji ASP.NET MVC:
UrlHelper url = new UrlHelper(HttpContext.Current.Request.RequestContext);
url.Action("ContactUs"); // Will output the proper link according to routing info
Przykład:
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;
}
}
Wywołanie właściwości Link
na utworzonego obiektu MyModel zwróci prawidłowy adres URL, aby wyświetlić model oparty na routingu w Global.asax
Myślałam o tym sam, ale należy pamiętać, że Url.Action wygeneruje względny adres URL. Upewnij się, że tego właśnie chcesz. –