Laden...

[gelöst] Wie kann ich 'if' Orgien im ASP Teil vermeiden?

Erstellt von Sieben vor 15 Jahren Letzter Beitrag vor 15 Jahren 995 Views
Sieben Themenstarter:in
140 Beiträge seit 2006
vor 15 Jahren
[gelöst] Wie kann ich 'if' Orgien im ASP Teil vermeiden?

Hi,

ich habe eine Seite, die je nach einer bestimmten Bedingung unterschiedliches Html ausgeben soll. Mir fällt da momentan nur diese Lösung ein, die ich aber doof finde, da es jetzt Logik im Htmlteil gibt. Kann man das ganze irgendwie anders lösen?


<%@ Page Language="C#" MasterPageFile="~/Html/VxBet.Master" AutoEventWireup="true" CodeBehind="Tipp.aspx.cs" Inherits="VxBet.Html.Tipp" Title="Untitled Page" %>
<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="server">

<%
if ( bedingung )
{
  %>
  Erste Ausgabe mit Html
  <%
}
else
{
  if ( bedingung 2 )
  {
    %>
    Zweite Ausgabe mit Html
    <%
  }
  else
  {
    %>
    Dritte Ausgabe mit Html
   <%
  }
}
%>

gruß Sieben

Nur die Kogge schwimmt! 😁

B
200 Beiträge seit 2006
vor 15 Jahren

Hallo,

natürlich kann (/sollte) man das anders lösen...
Hau einfach drei <div id="ErsteAusgabe" runat="server" ...> usw... rein. Danach kannst du diese konfortabel in der CodeBehind ansprechen und ensprechend die Visible Eigenschaft setzten.

gruess

Sieben Themenstarter:in
140 Beiträge seit 2006
vor 15 Jahren

Hm... ist dann "ErsteAusgabe" eine Methode in der Klasse? Dann muss ich in dieser Methode Htmlcode mit "Response.Write" schreiben, oder?

Nur die Kogge schwimmt! 😁

B
200 Beiträge seit 2006
vor 15 Jahren

Hallo,

Hm... ist dann "ErsteAusgabe" eine Methode in der Klasse?

Das sind Grundlagen von ASP.NET. ErsteAusgabe ist keine Methode sondern ein Feld vom Type HtmlGenericControl

<div id="ErsteAusgabe" runat="server" Visible="false">
Erste Ausgabe mit Html
</div>

<div id="ZweiteAusgabe" runat="server" Visible="false">
Zweite Ausgabe mit Html
</div>

usw....


{
  if (...)
    ErsteAusgabe.Visible = true;
  else
    ZweiteAusgabe.Visible = true;
}

ASP.NET und Classic ASP lässt sich nur schlecht vergleichen, daher musst du hier komplett umschalten...

Grz

5.941 Beiträge seit 2005
vor 15 Jahren

Hallo Sieben

Response.Write solltest du nicht mehr verwenden, siehe:

Genau so Code im deklerativen Code, weg damit.
Du kannst alles ins Codebehind auslagern.

Gruss Peter

--
Microsoft MVP - Visual Developer ASP / ASP.NET, Switzerland 2007 - 2011

Sieben Themenstarter:in
140 Beiträge seit 2006
vor 15 Jahren

Boah jetzt habi des verstanden, des is ja geil 😄

Ich schreib im Aspteil 'div' Elemente mit 'Runat=Server' und er generiert mir im Hintergrund ein 'HtmlGenericControl' was ich dann in der abgeleiteten Page Klasse als Member ansprechen kann und dort die Eigenschaften verändern kann.

So funktionieren dann wohl alle Asp-Controls. Dat find ich super, ich dacht schon ich müsst den Response-Kram schreiben 😉

Joa mir fehlen da wohl wirklich ein paar Basics, hab bisher leider keine gute Einführung in ASP.net gefunden 😦

Trotzdem noch mal vielen Dank für die Aufschlussreichen Antworten 😃

gruß Sieben

Nur die Kogge schwimmt! 😁

M
402 Beiträge seit 2005
vor 15 Jahren

Hi!

Die Quickstart-Tutorials sollten fürs erste ausreichend sein.

http://quickstarts.asp.net/QuickStartv20/aspnet/Default.aspx

1.433 Beiträge seit 2006
vor 15 Jahren

Hallo Sieben

Response.Write solltest du nicht mehr verwenden, siehe:

Ausser im ASP.NET MVC da werden diese im Tutorial empfohlen, ansonsten der HTML Encoder

Grüsse
Daniel
Space Profile
Wer nicht fragt, der nicht gewinnt

5.941 Beiträge seit 2005
vor 15 Jahren

Hallo schaedld

Ausser im ASP.NET MVC da werden diese im Tutorial empfohlen, ansonsten der HTML Encoder

ASP.NET MVC ist ja auch was anderes 😃

Gruss Peter

--
Microsoft MVP - Visual Developer ASP / ASP.NET, Switzerland 2007 - 2011

1.433 Beiträge seit 2006
vor 15 Jahren

Hallo Peter

ASP.NET MVC ist ja auch was anderes 😃 Jup, finde ich sehr interessant, wohl tuen sich dort sicherlich andere Probleme auf die man mit dem "normalen" ASP.NET nicht hätte /hat 😉

Grüsse
Daniel
Space Profile
Wer nicht fragt, der nicht gewinnt

5.941 Beiträge seit 2005
vor 15 Jahren

Hallo schaedld

Jup, finde ich sehr interessant, wohl tuen sich dort sicherlich andere Probleme auf die man mit dem "normalen" ASP.NET nicht hätte /hat 😉

Genau so ist es 😉

Gruss Peter

--
Microsoft MVP - Visual Developer ASP / ASP.NET, Switzerland 2007 - 2011