2009-05-26 29 views
5

Bạn tôi sử dụng Visual Studio để phát triển các trang web trong ASP.NET. Cô ấy chỉ sử dụng cơ sở Master Page, ngoài ra nó là HTML và CSS thông thường 100%.Tôi có thể xuất các trang html được tạo ra từ trang web ASP.NET thông qua Visual Studio không?

Có cách nào để xuất trang web sang các trang HTML dựa trên trang chính không?

Nếu không, nó tải từng trang theo cách thủ công và lưu HTML hoặc tôi viết một ứng dụng nhỏ thực hiện nó.

Ngoài ra, có ai biết công cụ nào để đạt được điều gì đó tương tự không?

+0

Một câu hỏi rất thú vị! – User

+0

Tôi rất vui vì bạn đã chỉnh sửa tiêu đề. Tôi nghĩ "nên đặt 'vào trang HTML'" ngay sau khi tôi đăng :) – joshcomley

+0

Tôi đã làm rõ tiêu đề cho bạn. – Soviut

Trả lời

1

Visual Studio không có khả năng này ra khỏi hộp. Tuy nhiên, nó có thể viết một công cụ đi qua một bản đồ trang web, nắm bắt các html rendered từ đối tượng phản ứng, và sau đó ghi nó vào một tập tin.

+0

Đó là chính xác những gì tôi có trong tâm trí như một "phương sách cuối cùng"! – joshcomley

1

Tôi thực sự không biết cách xuất toàn bộ trang web sang bản sao cục bộ.

Tuy nhiên, công cụ tải xuống công cụ - trang web. Tôi biết một - TeleportPro, nên có những người khác. Kiểm tra xem chúng có âm thanh như một tùy chọn cho bạn hay không.

1

Bạn có thể cho Macromedia Dreamweaver một cảnh nếu bạn muốn thử nghiệm. Nó phục vụ cho việc phát triển trang phía máy khách và phía máy chủ.

+0

+1 Tôi đã từng sử dụng hệ thống templating dreamweaver trên các dự án mà khách hàng không có phụ trợ động. Về cơ bản nó là hệ thống masterpage trong ASP.NET nhưng dreamweaver tạo ra các trang cho bạn. – Soviut

1

Khi sử dụng MasterPages, nội dung của MasterPage được hợp nhất với trang nội dung ở phía máy chủ (hoặc tại biên dịch trước hoặc yêu cầu đầu tiên của trang). Vì vậy, bạn cần phải có các trang nội dung và biên dịch MasterPage thông qua aspnet_compile tại một số điểm. Xem phần "Hành vi thời gian chạy" của this MSDN article.

người bạn của bạn có thể muốn sử dụng cũ bên thời máy chủ bao gồm (trong đó chủ yếu là những gì một MasterPage đang làm cho bạn anyway):

<!--#include virtual="/includes/header.html" --> 
<!--#include virtual="/includes/nav.html" --> 

<p> content </p> 

<!--#include virtual="includes/footer.html" --> 

Nếu đây bị chặn bởi máy chủ web của bạn/loạt các lựa chọn (một số vô hiệu hóa nó vì lý do bảo mật) sau đó tôi sẽ tạo một trang chỉ mục chính và sử dụng một cuộc gọi Ajax để điền vào một nội dung DIV. Tất nhiên, nếu Javascript bị tắt, khách truy cập của bạn sẽ không thấy bất kỳ nội dung nào.

1

Tôi nghĩ rằng bạn sẽ cần phải cuộn của riêng bạn cho một này. Chức năng này đến thăm một địa chỉ và nhận được các nội dung:

Public Shared Function GetHTTPContent(ByVal url As String) As String 
    Dim req As WebRequest = System.Net.HttpWebRequest.Create(url) 
    Dim encode As System.Text.Encoding = System.Text.Encoding.GetEncoding("utf-8") 
    Dim sr As New StreamReader(req.GetResponse().GetResponseStream(), encode) 
    Dim HTTPContent As String = sr.ReadToEnd 

    sr.Close() 
    sr.Dispose() 

    Return HTTPContent 

End Function 
0

Rất nhiều những tồn tại, đây là một trong:

HTTrack Website Copier

này còn được gọi là rẽ bởi vì đó là tìm kiếm điều tương tự động cơ làm.

0

Đây là giải pháp nhanh chóng của tôi thu thập dữ liệu trang web địa phương của bạn cho tệp .aspx và tạo tệp .html bên cạnh html.

protected void ButtonGenerate_Click(object sender, EventArgs e) 
{ 
    RecursivelyGenerateHtmlFiles(Server.MapPath("~/"), new DirectoryInfo(Server.MapPath("~/"))); 
} 

private void RecursivelyGenerateHtmlFiles(string root, DirectoryInfo folder) 
{ 
    foreach (var aspxPage in folder.GetFiles("*.aspx")) 
    { 
     var destination = aspxPage.FullName.Substring(0, aspxPage.FullName.Length - 4) + "html"; 

     if (File.Exists(destination)) 
      File.Delete(destination); 

     var url = "http://" + Request.Url.Authority + "/" + aspxPage.FullName.Replace(root, ""); 
     var request = HttpWebRequest.Create(url); 

     File.WriteAllText(destination, new StreamReader(request.GetResponse().GetResponseStream()).ReadToEnd()); 
    } 

    foreach (var subDirectory in folder.GetDirectories()) 
    { 
     RecursivelyGenerateHtmlFiles(root, subDirectory); 
    } 
} 

Làm việc cho tôi.

Ngoài ra, bạn có thể chỉnh sửa tệp .bat để tạo thư mục có tất cả các tệp .html từ trang web của bạn. Điều này hữu ích khi tạo quảng cáo cho một bản sao phẳng.

set folder="Generated" 
cd /d %folder% 
for /F "delims=" %%i in ('dir /b') do (rmdir "%%i" /s/q || del "%%i" /s/q) 
cd /d .. 
xcopy /r /d /i /s /y /exclude:exclude.txt PAHtml Generated 

Đây là loại trừ.tệp txt để sử dụng

.dll 
.cs\ 
.aspx 
.pdb 
.csproj 
.user 
.vspscc 
.config 
Các vấn đề liên quan