静的メソッドでPage.GetRoutUrl
-
25-09-2019 - |
質問
私がやっているのいくつかの背景
持っている私は通常のように私のページがアクセスそれに必要なURLを返します。私は、通常そのようなメソッドを持っていますので、
public partial class ProductDetails : Page
{
public static string GetUrl(Guid productId)
{
return "fully qualified url";
}
}
私の他のページ/コントロールの必要性は、私は単に
とのリンクを設定します。このページにアクセスしていることhl.NavigateUrl = ProductDetails.GetUrl(id);
私は必ず意志の仕事じゃない何かに4.0とRANの新しいUrlRoutingのものと周りいじるんです。私は私の静的メソッドでPage.GetRouteUrlを使用しようとしている、と明らかにそれが原因ますされていない静的に吹いています。
それは私がGetRouteUrlでやっている可能性の複製だ場合は、んと誰が知っていますか?
THX
解決
あなたのような何かを行うことができます
var url = ((Page)HttpContext.Current.Handler).GetRouteUrl(id);
注:他のページからこのメソッドを呼び出した場合、それはいくつかの方法で、相対的な固有だ場合には、所望の結果を得ないかもしれない...しかし、それはあなたが、私は信じている静的に得ることができるように良いようです。
。他のヒント
私は上記のニックスの提案を使用して仕事にGetRouteUrlを得ています。
私もGetRouteUrlを使用してO / Wそれを行うための別の方法を発見しました。あなたは基本的にGetVirtualPathを使用して手動で生成している。
public static string GetUrl(int productId)
{
var parameters = new RouteValueDictionary { { "productId", productId } };
var vpd = RouteTable.Routes.GetVirtualPath(null, "product-details", parameters);
return vpd.VirtualPath;
}
所属していません StackOverflow