2009-07-28 8 views
0

10 Ich realisiere, dass dies wahrscheinlich eine grundlegende Sache ist, die ich wissen sollte, aber ich bin Selbstlerner C# und asp.net, so dass ich an dieser Stelle ein wenig verloren bin.ASP.NET C# Richtig HTML für Seite

Ich habe gerade 2 Seiten. Eins ist ein ASPX (mit aspx.cs-Datei enthalten), das leer ist und HTML für es von einer Page Load-Funktion in der CS-Datei generiert wird. Das HTML ist sehr einfach und es ist nur ein Bild und etwas Text.

Die zweite Datei ist eine shtml-Datei, die viele Dinge enthält, einschließlich serverseitige, editierbare und nicht editierbare Bereiche. Ich möchte meine Webanwendung in diese Datei einfügen. Meine asp.net App verwendet Response.Write, um nur den HTML-Code auszugeben. Das geht nicht gut mit dieser Seite, da es nur oben auf der Seite geschrieben wird, weil es zuerst ausgeführt wird und es oben generiert.

Wie kann ich es schaffen, wo ich HTML-Code innerhalb der Seite erzeugen kann, wie in einem bestimmten DIV, damit es die Seite nicht durcheinander bringt. Wo wäre ein Ausgangspunkt, um zu lernen, wie man das macht?

Ich sollte beachten, dass ich keine Interaktion vom Benutzer brauche. All dies sollte sofort generiert werden.

Antwort

1

Also wenn ich die Fragen richtig verstanden habe. Sie haben bereits eine bestehende Seite/Anwendung (die shtml-Datei), die Sie mit einigen neuen ASP.NET-Komponenten erweitern möchten, indem Sie die Ausgabe von der ASP.NET-Seite in die vorhandene Seite einbeziehen?

Dies ist nicht etwas, das von ASP.NET "out of the box" "unterstützt" wird und Sie "nicht" in der Lage sein werden, die aspx-Seite mit SSI auszuführen. Aber Sie können das Gegenteil tun, eine ASP.NET-Seite unterstützt SSI. Wenn Sie also keine anderen Skripte in der shtml-Datei verwenden, könnte dies eine Lösung sein.

Andernfalls wäre die einzige übliche Lösung, entweder ein AJAX-Framework zu verwenden und ASP.NET von den vorhandenen Seiten aufzurufen oder eine iframe-Lösung zu verwenden. In beiden Fällen ist der Client dafür verantwortlich, die Aufrufe der ASP.NET-Seiten aufzurufen und die Ergebnisse zusammenzuführen.

Und dann haben Sie ein Problem mit der Steuerung der Ausgabe von der ASP.NET-Seite? Der polymorphe Podcast hat einen guten Artikel über Controlling HTML in ASP.NET WebForms.

0

Ich weiß nicht, wie gut das für Sie funktionieren würde, aber könnten Sie versuchen, einen iframe zu verwenden, um die ASP.NET-Seite unterzubringen? Dies sollte es in der angegebenen Region behalten und Ihre shtml-Datei nicht überschreiben. Es könnte etwas zum Nachdenken sein.

<div> 
    <asp:Literal ID="litMarkup" runat=server /> 
</div> 

dann in Ihrem Code-Behind:

litMarkup.Text = "<strong>Your markup</strong>"; 
+0

Auch, wenn dies eine reine ASP.NET-Seite wäre, könnten Sie auch ein Literal-Steuerelement oder einen Platzhalter verwenden, der Ihr generiertes HTML enthalten könnte. – darthnosaj

1

Sie können eine Literal control auf die Seite innerhalb des div hinzufügen Dokumentation und Tutorials. Response.Write ist nicht der richtige Ansatz - Sie müssen verstehen, wie der ASP.Net-Seitenlebenszyklus funktioniert und wie WebControls zum Rendern von HTML verwendet werden.

ASP.Net versucht weg zu abstrahieren, um Ihre html zum größten Teil manuell zu erstellen.

2

Ich glaube, Sie müssen sich auf einige grundlegende ASP.Net lesen

+0

+1 für diese wichtige warnende Aussage. – AmitK

0

Wenn es notwendig ist, dass Sie Ihre HTML-Ausgabe aus C# -Code generieren, und Sie dies an mehr als einem Ort verwenden würden, denke ich, dass Sie vielleicht etwas wie ASP.NET Custom Controls denken (nicht zu sein) verwechselt mit "User Controls" - obwohl Sie wahrscheinlich auch eine Lösung mit diesen zusammenstellen könnten, mit einem Literal-Steuerelement wie eine andere Person vorgeschlagen. Die MSDN-Dokumentation wäre ein guter Ausgangspunkt. Im Allgemeinen ist das Schreiben-aus-HTML-selbst-von-Code-Modell (wie Sie es mit CGI-Anwendungen tun würden) jedoch nicht das übliche ASP.NET-Entwicklungsmodell, da es den Punkt der Verwendung von ASP weitgehend vereitelt .NET überhaupt. Sie würden diese Art von Dingen am liebsten machen, wenn Sie Ihre eigene Websteuerung schreiben, obwohl dies genau das ist, was Sie tun (schwer zu sagen aus der Beschreibung).

Verwandte Themen