2009-04-03 5 views
0

Ich verwende ASP.NET, um einfache Formulare zu verarbeiten, die ich selbst zurückschicke. (Ich möchte nicht ASP.NET-Formulare verwenden, mit runat = "server)Woher weiß ich, ob ein reguläres Postback in ASP.ENT ist (warum wurde IsPostback nicht in einfachen ASP.NET-Formularen festgelegt)?

Um IsPostBack nicht gesetzt ist, wenn es wirklich ein Postback hat sein.

Was ist der Grund dafür?

Sollte ich nicht mir Post zurück?

<form method="post" id="theForm" action="http://localhost/index.aspx"> 
    <input type="submit" value="submit" /> 
    <input ID="titleTB" type="text" /> 
    <input id="zipTB" type="text" /><br /> 
</form> 

Antwort

1

Wenn Sie runat = "server" nicht verwenden möchten, können Sie immer andere Methoden wie Request.HttpMethod verwenden, die bei der Verwendung von Postbacks auf "POST" gesetzt werden.

4

Sie werden die runat festlegen müssen = ‚Server‘ Attribut für Postbacks für Ihre Form und Kontrollen korrekt zu arbeiten.

Eigentlich Olav, wenn Sie wirklich absolute Kontrolle über das HTML und seine Verarbeitung wollen, schlage ich vor, Sie betrachten ASP.NET MVC, die in diesem Sinne entwickelt wurde

+0

Ich verwende (und möchte) einfache Formulare, nicht ASP.NET Formen! Der ASP.NET-Code sollte "wissen", ob es sich um ein Postback handelt oder nicht, auch wenn es sich nicht um ein ASP.NET-Webformular handelt. – Olav

+0

Leider Olav, ASP.NET benötigt einige zusätzliche Rohrleitungen, um das Webforms-Modell zu unterstützen. Der einzige Weg, wie diese zusätzlichen Daten an den Webserver zur Verarbeitung gesendet werden, ist, soweit ich weiß, dass wenn Sie dieses Attribut setzen – Rad

+0

Fügen Sie das Attribut runat hinzu, deaktivieren Sie ViewState und EventValidation. Es ist so nah wie es nur geht. IsPostback ist eine serverseitige Funktion, Sie möchten kein serverseitiges Formular verwenden, daher können Sie auch keine serverseitigen Funktionen verwenden. Es tut uns leid. –

0

Wie Conrad sagte ... Sie können nicht die Ware von beiden haben Welten. IsPostback ist ein Teil der WebForms-Funktionalität, und Webforms kommt zusammen mit dem Tag runat = "server" (und einigen Viewstate, eventvalidation tag, long dom ids :-)).

0

So etwas wie ‚POST‘ = Request.HTTPMETHOD

+0

Siehe meine Antwort oben. Sie können verwenden, wenn (Request.HttpMethod == "POST") ... –

0

Während Sie die asp.net Güte, ohne dass auf Ihrer Seite verwenden IsPostBack können, können Sie möglicherweise an der http-Header-Variable REFERRER aussehen - diese sagt Ihnen, woher die Anfrage kam - wenn es Ihre Seite ist, dann war es wahrscheinlich ein Postback ...