2012-04-30 28 views
6

Về cơ bản tôi muốn có một bố cục nhất định sẽ được sử dụng khi có ai đó đang truy cập vào trang gốc:Làm cách nào để kiểm tra xem người dùng truy cập trang web có nằm trên trang gốc hoặc bất kỳ trang nào khác không?

www.foo.com 

Và bố trí khác khi đến thăm bất cứ nơi nào khác:

www.foo.com/asdf 

tôi thể sử dụng file _Layout khác nhau, nhưng vì thay đổi duy nhất là ở đây, tôi thấy rằng phản tác dụng.

Dưới đây là những gì tôi đã cố gắng, hy vọng nó minh họa những gì tôi đang cố gắng để hoàn thành:

@if (HttpContext.Current.Request.Url.ToString() == "some way to check root?") 
{ 
    @RenderBody() 
} 
else 
{ 
    <div id="big-kahuna"> <!-- Literally the only change. --> 
     @RenderBody()  
    </div> 
} 

Trả lời

23
if(Request.Url.PathAndQuery == "/") // root; 
+0

Kudos, làm việc như một nét duyên dáng. –

+0

Điều này không thành công nếu ứng dụng của bạn đang chạy dưới một thư mục ảo. Trong trường hợp đó Request.Url.PathAndQuery trả về "/ [virtual dir] /", vì vậy bạn sẽ muốn nếu (Request.Url.PathAndQuery == @ Url.Content ("~")) – deive

+0

sẽ không là gốc của trang web, nó sẽ là gốc của ứng dụng của bạn ***. trong kịch bản của bạn, bạn kiểm tra '/ [virtual dir]' làm thư mục gốc của ứng dụng ảo của bạn. – xandercoded

3
if (Request.AppRelativeCurrentExecutionFilePath == "~/") 
Các vấn đề liên quan