Aus dem einen oder anderen Grund spiele ich mit einem "minimalistischen" ASP.Net nur zum Spaß. Ich habe viele Dinge deaktiviert und versuche, Dinge neu zu implementieren. Eine Sache, die ich nicht genau herausfinden kann, ist, wie man eine ASP.Net Seite (aspx) rendert.
Das ist mein bisheriger Fortschritt:
%Vor% Das / static / bit funktioniert genauso wie die "hi world". Ich kann die Route /test1
jedoch nicht zur Arbeit bringen. Es erreicht diesen Punkt, aber alles, was angezeigt wird, ist eine schwarze Seite.
Ich habe eine test1.aspx-Seite mit diesem Designer-Inhalt:
%Vor%und es hat fast keinen Code zurück (nur eine leere Funktion, die keine Rolle spielt)
Was mache ich hier falsch?
Global.asax ist ein Ablenkungsmanöver. ASP.NET erstellt die angeforderte Seite erfolgreich:
%Vor% test1
ist die Code-Behind-Klasse für die test1.aspx Seite. Das willst du aber nicht, siehst du? Alles, was Sie sehen möchten, stammt aus der Datei test1.aspx . Was Sie tun müssen, ist ASP.NET sagen zu machen test1.aspx zu Response.Output:
Sie können HttpContext.Current.Server.Execute
hier verwenden. Siehe HttpServerUtility.Execute .
Mein erster Gedanke wäre, dass Sie die versteckte Seite nicht aufrufen .FrameworkInitialize . Ich bin mir nicht sicher, ob es in diesem Szenario wirklich etwas für dich tut.
Ich glaube auch, dass Page.ProcessRequest rendern wird direkt zum bereitgestellten HttpContext. Siehe ProcessRequestMain in Reflector, während Render ruft es this.RenderControl(this.CreateHtmlTextWriter(this.Response.Output))
.
Wir können nicht sehen, woher Sie Ihr Request and Response-Objekt erhalten. Haben Sie die als Parameter sender
an Sie gesendete HttpApplication überprüft, damit Sie sicher sind, dass Sie die richtigen Objekte verwenden?
Dieser Artikel zeigt wie man ein UserControl von einem Web-Service rendert . Vielleicht kann das hilfreich sein.
Tags und Links c# asp.net webforms global-asax