2011-01-14 15 views
0

Aus Gründen, die wahrscheinlich nicht erwähnenswert in diesem Beitrag sind, habe ich beschlossen, ASP.NET-Steuerelemente zu stoppen und verwenden Sie einfach reguläre HTML-Steuerelemente für meine ASPX-Seiten. Um HTML also dynamisch zu generieren, verwende ich C# inline zum ASPX, um das zu tun, was ich tun muss.Cleaner Weg zum Schreiben inline C# in .aspx Seite

Zum Beispiel: der ASPX-Schnipsel zeigt, wie ich dynamisch ein < Schaffung bin wählen > Element, wo die <Option> Elemente durch Schleifen durch eine generische Liste von Objekten angetrieben werden.

<select name="s"> 
<option value="-9999">Select an entity...</option> 
<% foreach (MyEntity e in this.MyEntities) 
{%> 
<option <% if (MyEntityInScope.ID == e.ID) 
{ %>selected<%} %> value="<%= e.ID %>"> 
<%= e.Name%></option> 
<%} %> 
</select> 

Funktionalität weisen, ziehe ich diese Methode HTML zu erstellen (Ich fühle mich mehr in der Hand, wie die HTML vs ASP-Steuerelemente erzeugt wird). Aber syntaktisch (und visuell) finde ich es umständlich (und hässlich).

Gibt es einen "besseren" Weg (eine andere Syntax), HTML dynamisch zu generieren, ohne auf ASP.NET-Steuerelemente zurückzugreifen?

+2

Sounds, wie Sie wollen „ASP.NET MVC“ stattdessen verwenden .. – codymanix

+2

Werfen Sie einen Blick auf den neuen Projekttyp NET MVC. Es klingt, als ob es mehr mit der Art und Weise, wie Sie denken, übereinstimmt. http://www.asp.net/mvc – David

+0

Ich beobachtete Scott Guthries vid http://vimeo.com/7215798 auf MVC. Obwohl ich eine leichte Motivation empfand, mir die Zeit zu nehmen, MVC zu lernen/zu implementieren, konnte ich nicht umhin mich zu fragen, warum ich ein neues Paradigma/Framework lernen sollte, wenn ich nur syntaktische Probleme beim Erstellen von HTML lernen musste. Um ehrlich zu sein, bin ich immer noch auf der Hut, ob ich in MVC eintauchen soll oder nicht. Davon abgesehen bin ich sicher, dass ich mit ASP.NET-Formularsteuerelementen fertig bin. – Jed

Antwort

7

Warum steckst du deine Logik in eine Methode und nennst diese Methode?

string GetEntityList() 
{ 
// ... 
} 

<select name="s"> 
<option value="-9999">Select an entity...</option> 
<%= GetEntityList() %> 
</select> 
2

Ein gängiger Ansatz ist XML über XSLT. Das heißt, Ihr Code erstellt ein XML-Dokument, lädt eine geeignete XSLT-Transformation und sendet das Ergebnis.

+2

das klingt schlecht. –

+1

Warum klingt es schlecht? Wann immer Sie die Präsentationsschicht ändern müssen, brauchen Sie den Code nicht zu ändern, Sie ändern nur die XSLT (und für die visuelle Gestaltung ändern Sie die CSS, wenn Sie sauberes XSLT/HTML haben wollen). Man kann ein benutzerdefiniertes Steuerelement auf dem Server verwenden, um die XML-zu-HTML-Konvertierung über XSLT durchzuführen, wie diese: http://clipflair.codeplex.com/SourceControl/latest#Server/Components/CustomXml/CustomXml.cs –

2

Eine Hilfsmethode, die eine HTML-Zeichenfolge zurückgibt, kann dabei helfen, ähnlich wie die HTML-Helfer in ASP.NET MVC.