這確實需要參考System.Web.MVC
,但它應該給你一個基本的想法如何完成。 我創建的擴展,幫助我:
public static string GetAbsoluteURL(this RouteCollection routes, RequestContext context, RouteValueDictionary values, HttpProtocolType httpProtocol)
{
string host;
if (context.HttpContext.Request.Url != null)
{
host = context.HttpContext.Request.Url.Authority;
}
else
{
host = context.HttpContext.Request.UrlReferrer.Host;
}
string virtualPath = routes.GetVirtualPath(context, "Default", values).VirtualPath;
string protocol = httpProtocol == HttpProtocolType.HTTP ? "http" : "https";
return string.Format("{0}://{1}{2}", protocol, host, virtualPath);
}
將URL前綴作爲參數傳遞對我的真實世界情況沒有任何意義。這將成爲我的代碼難聞的氣味。 – TiagoBrenck