2010-08-26 99 views
1

我有一個網站在IIS(「myWebsite」)和另一個在這一個(「secondWebsite」)作爲應用程序。這兩個都是ASP.NET Mvc網站。ASP.NET Mvc絕對網址與網站內的應用程序

我有誰的作品完美地在第一個方法:

public static string AbsolutePath(this UrlHelper url, string path) 
    { 
     Uri requestUrl = url.RequestContext.HttpContext.Request.Url; 
     string absoluteAction = string.Format("{0}{1}", requestUrl.GetLeftPart(UriPartial.Authority), path); 
     return absoluteAction; 
    } 

結果是:http://myWebsite.com/path

我在第二個網站同樣的方法,結果是一樣的,這就是邏輯,但我不想要它!

結果應該是:myWebsite.com/secondWebsite/path。 (錯過http://防止垃圾郵件的原因^^)。

有沒有很好的方法來做到這一點?

謝謝。

回答

1

你可以嘗試使用

string absoluteAction = string.Concat(Request.Url.Authority, 
    Request.ApplicationPath, path); 
0

你不能使用Server.ResolveUrl(「〜/ Path」);作爲來自應用程序根的變形。

+0

我不知道這一點,但一個。 作品爲一個視圖,但我想用這個css文件:/ <%:ResolveUrl(「Content/styles_1.css」)%>給我Views/Shared/Content/styles_1.css ^^。並且它不會讓我絕對地址:/ – Tom741 2010-08-26 11:51:02

+0

在視圖內部,使用<%= ResolveUrl(「〜/ styles/main.css」)%>將引用相關應用程序中的styles文件夾,而不是從根目錄的服務器。如果你只是想從你的視圖中引用css文件和js文件,這應該是你所需要做的 - 它已經過嘗試和測試,可以與IIS網站根目錄下的網站一起工作,或嵌套在應用程序/虛擬目錄。如果這不是你正在做的事情,你能否爲你正在努力解決的問題提供更多的背景知識。謝謝。 – 2010-08-26 12:03:35