Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Export ASPX to HTML

We're building a CMS. The site will be built and managed by the users in aspx pages, but we would like to create a static site of HTML's. The way we're doing it now is with code I found here that overloads the Render method in the Aspx Page and writes the HTML string to a file. This works fine for a single page, but the thing with our CMS is that we want to automatically create a few HTML pages for a site right from the start, even before the creator has edited anything in the system. Does anyone know of any way to do this?

like image 423
Lea Cohen Avatar asked Sep 11 '08 11:09

Lea Cohen


People also ask

Can you convert ASPX to HTML?

Open it on your local machine in a browser, view the source (View | Source in IE, View | Page Source in Firefox etc ), then save that page source as pagename. html.

How do I save an ASPX file as HTML?

Solution 1. Open the ASPX page in a web browser such as Firefox or Google Chrome, and choose 'Save As' - you should have the option to save the page as an HTML file.

How do I open ASPX files in Chrome?

All you have to do is, right-click on the . aspx file, click on Open with, and select Chrome (your browser). If you can't find your desired browser, click on Choose another app and locate your specified browser from the Program file.

Why do we use ASPX?

Active Server Pages (ASPX) is a file format used by web servers and generated using the Microsoft ASP.NET framework - an open-source development framework used by web developers to create dynamic web pages, often with the . NET and C# programming languages.


4 Answers

I seem to have found the solution for my problemby using the Server.Ecxcute method.

I found an article that demonstared the use of it:

TextWriter textWriter = new StringWriter();
Server.Execute("myOtherPage.aspx", textWriter);

Then I do a few maniulatons on the textWriter, and insert it into an html file. Et voila! It works!

like image 163
Lea Cohen Avatar answered Sep 26 '22 13:09

Lea Cohen


Calling the Render method is still pretty simple. Just create an instance of your page, create a stub WebContext along with the WebRequest object, and call the Render method of the page. You are then free to do whatever you want with the results.

Alternatively, write a little curl or wget script to download and store whichever pages you want to make static.

like image 45
Frank Krueger Avatar answered Sep 24 '22 13:09

Frank Krueger


You could use wget (a command line tool) to recursively query each page and save them to html files. It would update all necessary links in the resulting html to reference .html files instead of .aspx. This way, you can code all your site as if you were using server-generated pages (easier to test), and then convert it to static pages.

If you need static HTML for performance reasons only, my preference would be to use ASP.Net output caching.

like image 29
ckarras Avatar answered Sep 22 '22 13:09

ckarras


I recommend you do this a very simple way and don't do it in code. It will allow your CMS code to do what the CMS code should do and will keep it as simple as possible.

Use a product such as HTTrack. It calls itself a "website copier". It crawls a site and creates html output. It is fast and free. You can just have it run at whatever frequency you think is best.

It decouples your HTML output needs from your CMS design and implementation. It reduces complexity and gives you some flexibility in how you output the HTML without introducing failure points in your CMS code.

like image 43
jttraino Avatar answered Sep 22 '22 13:09

jttraino