2009-04-22 21 views
5

Tôi biết ASP.NET thực hiện điều này tự động, nhưng đối với một số lý do tôi không thể tìm thấy phương pháp.Cách chuyển đổi "~/default.aspx" thành "http://www.website.com/default.aspx" C#?

Giúp mọi người? Cũng như tiêu đề nói.

Nếu tôi thực hiện một Response.Redirect ("~/Default.aspx"), nó hoạt động, nhưng tôi không muốn chuyển hướng trang web. Tôi chỉ muốn URL đầy đủ.

Có ai có thể giúp tôi không?

Trả lời

7

Đối với phần "/#{path}/Default.aspx", sử dụng:

Page.ResolveUrl("~/Default.aspx") 

Nếu bạn cần biết thêm:

Request.Url.Scheme + "://" + Request.Url.Host + ":" + Request.Url.Port 
5

Trong một điều khiển web, phương pháp này là ResolveUrl("~/Default.aspx")

2

Có ít nhất ba cách để làm điều này. Tôi asked nếu có bất kỳ sự khác biệt nào, nhưng tôi không nhận được bất kỳ câu trả lời nào.

  1. Control.ResolveUrl
  2. Control.ResolveClientUrl
  3. VirtualPathUtility.ToAbsolute
+1

sự khác biệt giữa ResolveUrl và ResolveClientUrl là ResolveClientUrl trả về một đường dẫn tương đối để trang hiện tại, ResolveUrl trả về một đường dẫn tương đối đến thư mục gốc trang web: http://www.andornot.com/about/developerblog/2007 /06/resolveurl-vs-resolveclienturl.aspx –

0

Đây là những gì tôi sử dụng:

Response.Redirect(Response.ApplyAppPathModifier("~/default.aspx")) 
+0

có sự khác biệt nào giữa việc sử dụng Response.ApplyAppPathModifier() và Page.ResolveUrl(), đặc biệt khi xử lý các trang MVC (không phải biểu mẫu web) không? –

+0

Ồ, và ý tôi là không phải cho Chuyển hướng, mà là để nhận URL (ví dụ: thiết lập thuộc tính src, v.v.). –