Это то, что ASP.NET делает все время.Он ищет страницу ASPX в файловой системе, компилирует ее, если требуется, и затем обрабатывает запрос.
Codebehind является необязательным.У вас может быть веб-сайт с только ASPX, без какого-либо предварительно скомпилированного кода.
Вот страница ASPX без кода
<%@ Page language="c#" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<HTML>
<HEAD>
<title>ClearCache</title>
</HEAD>
<body>
<form id="ClearCache" method="post" runat="server">
<%
IList keys = new ArrayList(Cache.Count);
foreach (DictionaryEntry de in Cache)
keys.Add(de.Key);
foreach (string key in keys)
{
this.Response.Write(key + "<br>");
Cache.Remove(key);
}
%>
</form>
</body>
</HTML>
Загрузка файла в формате HTML:
var wc = new WebClient();
wc.DownloadFile(myUrl, filename);
Если у вас нет веб-сервера ASP.NET, вам нужно запустить сервер. Кассини отлично подходит для этого.Тогда ваш код должен выглядеть следующим образом:
var server = new Server(80,"/", pathToWebSite);
server.Start();
var wc = new WebClient();
wc.DownloadFile(server.RootUrl + "myPage.aspx", filename);
server.Stop();
Если вы выполняете это более одного раза, сервер должен быть кэширован.
Обратите внимание, что вы также можете использовать RuntimeHost, как указано в code4life.Кассини делает нечто подобное.Я бы попробовал гот и увидел, что лучше подходит для вашей цели.