2010-08-26 95 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