JCB: ASPX vs. HTML

Hallo :o)!

Ich steh grad vor nem Rätsel. Ich entwickle gerade ne ASP.net-Webseite welche auf nem WindowsCE Rechner (Browser IE - Mozilla/4.0 (Compatible; MSIE6.0; WindowsCE) laufen sollen. Bis auf ein paar kleinere Hindernisse geht das soweit ganz gut.

Ein Problemchen ist z.B. die Größe von manchen Objekten (Button). Da kann ich angeben was ich will, der Button hat immer die Mindestgröße, abhängig von der Beschriftung. Speicher ich jedoch der Quellcode der angezeigten ASPX-Seite als html-Seite ab (auf dem Server) und ruf diese auf, passt plötzlich alles. Größe stimmt, Hintergrundfarbe etc. Wie gehtn das? Der vom Browser interpretierte Quellcode ist doch beide Male der gleiche (wenn ja nicht sogar der selbe ;) - diesbzgl. bitte keine Diskussion ;)).

Hier die beiden Seiten:

aspx
#######################################
<%@ Page Language="VB" AutoEventWireup="false" CodeFile="test.aspx.vb" Inherits="test" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>Untitled Page</title>
</head>
<body>

<form id="form1" runat="server">
    <div>
        <asp:Button ID="Button1" runat="server" Height="131px" Text="Button" Width="190px" /></div>
    </form>
</body>
</html>
#######################################

HTML:
#######################################
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head><title>
 Untitled Page
</title></head>
<body>

<form name="form1" method="post" action="test.aspx" id="form1">
<div>
<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwUKMTQ2OTkzNDMyMWRkaJjVve3p6hcdWmb08WDBG1vNqUw=" />
</div>

<div>
        <input type="submit" name="Button1" value="Button" id="Button1" style="height:131px;width:190px;" /></div>

<div>

<input type="hidden" name="__EVENTVALIDATION" id="__EVENTVALIDATION" value="/wEWAgL35965CQKM54rGBoi9aux8m8DtTEcVQ3Dcsy6jHlIu" />
</div></form>
</body>
</html>
#######################################

Wahrscheinlich ist die Erklärung simpel, aber scheinbar zu simpel für mich ;).

Gruß
Jan

  1. Hello,

    also wenn's nicht der Quirksmode ist, der durch irgendwelchen von ASP generierten Code anspringt, dann bin ich etwas ratlos. Hast du die Seite vielleicht mal irgendwo online? Generell darf es keinen Unterschied machen, ob der Ursprung ein ASPX Skript oder eine statische HTML-Seite ist.

    MfG
    Rouven

    --
    -------------------
    Computer programming is tremendous fun. Like music, it is a skill that derives from an unknown blend of innate talent and constant practice. Like drawing, it can be shaped to a variety of ends: commercial, artistic, and pure entertainment. Programmers have a well-deserved reputation for working long hours but are rarely credited with being driven by creative fevers. Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination, but because their imagination reveals worlds that others cannot see. -- Larry OBrien and Bruce Eckel in Thinking in C#
    1. Hello,

      also wenn's nicht der Quirksmode ist, der durch irgendwelchen von ASP generierten Code anspringt, dann bin ich etwas ratlos. Hast du die Seite vielleicht mal irgendwo online? Generell darf es keinen Unterschied machen, ob der Ursprung ein ASPX Skript oder eine statische HTML-Seite ist.

      Hi Rouven!

      Also die HTML-Seite kann ich online stellen (wobei du ja auch nur meinen geposteten Code abspeichern brauchst ;) ), aber bei der ASP-Seite siehts schlecht aus. Hab keinen Provider der ASP.Net überstützt. Die Seite die ich entwickle ist nur fürs Intranet. Jedoch denke ich mal, dass man da von außerhalb auch nicht viel mehr sieht. Denn der HTML-Code ist ja immer gleich. Aber bzgl. Quirksmode: den von ASP generierten Code sieht man nachher ja. Und dieser als html-Seite abgespeichert funktioniert ja auch tadellos. Nur als ASPX-Seite eben nicht. Wenn dann müßten ja bei beiden Seiten den Quirksmode aktiv sein.

      Gruß
      Jan

      1. Hello,

        also wenn dein HTML-Code wirklich 1:1 abgespeichert ist, bin ich zunächst mal ratlos. Sowohl Firefox als auch IE zeigen mir einen offensichtlich händisch vergrößerten Button an...

        Kannst du vielleicht nochmal die Header vergleichen, die der Server schickt? Könnte es sein, dass dein .aspx mit einem anderen MIME-Type ausgeliefert wird als die HTML-Seite?

        MfG
        Rouven

        --
        -------------------
        Death is nature's way of telling you to slow down.
        1. Hello,

          also wenn dein HTML-Code wirklich 1:1 abgespeichert ist, bin ich zunächst mal ratlos. Sowohl Firefox als auch IE zeigen mir einen offensichtlich händisch vergrößerten Button an...

          Kannst du vielleicht nochmal die Header vergleichen, die der Server schickt? Könnte es sein, dass dein .aspx mit einem anderen MIME-Type ausgeliefert wird als die HTML-Seite?

          Hi Rouven,

          also der Content-Type der ASP-Seite ist text/html. Wie kann ich denn den Header der statischen html-Seite überprüfen. Habs mit telnet probiert. Da kommt aber nurn Bad Request raus. Jedoch auch mit Content-Type text/html ;).

          Aber nur zur Info: unter XP sieht die Seite auch ok aus. Nur unter CE tritt dieses Phänomen auf.

          Gruß
          Jan

          1. Yerf!

            Aber nur zur Info: unter XP sieht die Seite auch ok aus. Nur unter CE tritt dieses Phänomen auf.

            Mit welchem Browser hast du dir den Quelltext angeschaut, dem auf dem CE oder einem anderen? Die können durchaus unterschiedlich sein (.NET hat da so ne komische Browsererkennung)

            Gruß,

            Harlequin

            --
            <!--[if IE]>This page is best viewed with a webbrowser. Get one today!<![endif]-->
            1. Yerf!

              Aber nur zur Info: unter XP sieht die Seite auch ok aus. Nur unter CE tritt dieses Phänomen auf.

              Mit welchem Browser hast du dir den Quelltext angeschaut, dem auf dem CE oder einem anderen? Die können durchaus unterschiedlich sein (.NET hat da so ne komische Browsererkennung)

              Yerf auch ;)!

              Öhm, den Quellcode hab ich mir mit dme Notepad angesehn ;).

              Gruß
              Jan

              1. Yerf!

                Öhm, den Quellcode hab ich mir mit dme Notepad angesehn ;).

                Öhm, dein Notepad kann HTTP? Ich meine, mit welchem Browser hast du die Seite angefordert, um an den Quelltext zu kommen? Wie gesagt, .NET verwendet teilweise einen anderen HTML-Renderer, je nach Browser.

                Gruß,

                Harlequin

                --
                <!--[if IE]>This page is best viewed with a webbrowser. Get one today!<![endif]-->
              2. Yerf!

                Aber nur zur Info: unter XP sieht die Seite auch ok aus. Nur unter CE tritt dieses Phänomen auf.

                Mit welchem Browser hast du dir den Quelltext angeschaut, dem auf dem CE oder einem anderen? Die können durchaus unterschiedlich sein (.NET hat da so ne komische Browsererkennung)

                Hallo nochmal!

                Also jetzt war ich ein wenig vorschnell. Ich hab mir nur den Quellcode auf nem WinXp Rechner angesehn, weils unter CE etwas umständlicher ist. Mein Fehler. Aber jetzt hab ich mir doch mal die "Mühe" gemacht und mir da den Code angesehen. Und kein Wunder, dass der Button klein und hässlich ist. Da sind plötzlich sämtliche CSS-Formatierungen für den Button verschwunden. Wieso sind die denn weg? ASP kanns doch egal sein, welcher Browser den Request sendet, sprich warum werden die bei dem CE-Browser nicht gerendert???

                Gruß
                Jan

                1. Yerf!

                  ASP kanns doch egal sein, welcher Browser den Request sendet, sprich warum werden die bei dem CE-Browser nicht gerendert???

                  ASP könnte es egal sein, wenn "die" (also MS) nicht versuchen würden zu raten was der Browser kann und notfalls auf HTML 3.2-Kompatibilität zurückschalten würden. (unter .NET 1.1 wurden nur IEs >= Version 5 mit CSS versorgt...)

                  Schreib mal ein

                  ClientTarget="uplevel"

                  in die <@page > Zeile der apsx-Seite, das sollte helfen.

                  Alternativ kann man auch in der web.config den HTML-Renderer überschreiben.

                  <browserCaps>
                    tagwriter=System.Web.UI.HtmlTextWriter
                   </browserCaps>

                  im system.web Abschnitt (das hat den Vorteil, das man im Programm weiterhin den Browser abfragen kann, mit der ersten Lösung wird man immer IE6 als Antwort erhalten)

                  Gruß,

                  Harlequin

                  --
                  <!--[if IE]>This page is best viewed with a webbrowser. Get one today!<![endif]-->
                  1. Yerf!

                    ASP kanns doch egal sein, welcher Browser den Request sendet, sprich warum werden die bei dem CE-Browser nicht gerendert???

                    ASP könnte es egal sein, wenn "die" (also MS) nicht versuchen würden zu raten was der Browser kann und notfalls auf HTML 3.2-Kompatibilität zurückschalten würden. (unter .NET 1.1 wurden nur IEs >= Version 5 mit CSS versorgt...)

                    Schreib mal ein

                    ClientTarget="uplevel"

                    in die <@page > Zeile der apsx-Seite, das sollte helfen.

                    Alternativ kann man auch in der web.config den HTML-Renderer überschreiben.

                    <browserCaps>
                      tagwriter=System.Web.UI.HtmlTextWriter
                    </browserCaps>

                    im system.web Abschnitt (das hat den Vorteil, das man im Programm weiterhin den Browser abfragen kann, mit der ersten Lösung wird man immer IE6 als Antwort erhalten)

                    Tach Harlequin!

                    Es kommt spät, aber es kommt: Danke :o)! Genau das wars.

                    Gruß
                    Jan