Postback funktioniert nicht mit aspx-Seite als Standarddokument
Wenn ich navigieren Sie zu http://localhost/edumatic3/trunk/login/accesscode/Default.aspxmeine postback funktioniert. Jedoch wenn ich navigieren Sie zu http://localhost/edumatic3/trunk/login/accesscode/ (mit Standard.aspx definiert als Standard-Dokument), meine postback nicht funktioniert.
Gibt es eine Möglichkeit, diese Arbeit zu machen? Oder sollte ich entfernen Sie das Standard-Dokument und zwingen die Benutzer auf durchsuchen, um http://localhost/edumatic3/trunk/login/accesscode/default.aspx?
UPDATE:
Code (Teil):
<div id="continueDiv">
<asp:ImageButton ID="continueImageButton"
runat="server" ValidationGroup="continue"
OnClick="ContinueImageButton_Click"
AlternateText="<%$ Resources:login, continue_alternatetext %>"/>
</div>
Code behind (part):
protected void Page_Load(object sender, EventArgs e)
{
Log.Debug("Page_Load(...)");
Log.Debug("Page_Load(...) :: PostBack = " + IsPostBack);
if (!IsPostBack)
{
continueImageButton.ImageUrl = "~/App_Themes/" + base.Theme
+ "/images/" + Resources.login.btn_continue;
}
}
///<summary>
///Continue Image Button Click Handler
///</summary>
///<param name="sender"></param>
///<param name="e"></param>
protected void ContinueImageButton_Click(object sender, EventArgs e)
{
....
Wenn ich auf die ImageButton-Steuerelement, Page_Load ausgelöst wird, und IsPostBack ist false... Normalerweise sollte es wahr sein. ContinueImageButton_Click(...) nicht ausgelöst alle.
In HTML (Teil):
<input type="image" name="ctl00$ContentPlaceHolder1$continueImageButton"
id="ctl00_ContentPlaceHolder1_continueImageButton"
src="../../App_Themes/LoginTedu/images/en_continue.png" alt="Continue"
onclick="javascript:WebForm_DoPostBackWithOptions(new
WebForm_PostBackOptions("ctl00$ContentPlaceHolder1$continueImageButton",
"", true, "continue", "", false, false))"
style="border-width:0px;">
Http-request:
POST /edumatic3/trunk/login/accesscode/ HTTP/1.1
Host: localhost
Referer: http://localhost/edumatic3/trunk/login/accesscode/
Content-Length: 1351
Cache-Control: max-age=0
Origin: http://localhost
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.1
(KHTML, like Gecko) Chrome/13.0.782.215 Safari/535.1
Content-Type: application/x-www-form-urlencoded
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Encoding: gzip,deflate,sdch
Accept-Language: nl,en-US;q=0.8,en;q=0.6,fr;q=0.4
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3
ASP.NET_SessionId=33yal3buv310y2etuj33qghg; CurrenUICulture=en-us
__EVENTTARGET=&__EVENTARGUMENT=&__VIEWSTATE=%2FwEPDw...
InformationsquelleAutor der Frage Lieven Cardoen | 2011-08-29
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich dachte, ich würde versuchen und zu vervielfältigen diese, und du hast absolut Recht. Es bricht ohne die
default.aspx
mit einem sehr einfachen Beispiel, das Sie zur Verfügung gestellt. Suche den HTML-Code, der Grund ist ziemlich klar. Es ist, weil das action-Attribut leer ist.Eine schnelle Suche zeigte dies, ASP.NET 4 aktuelle Änderungen (siehe Event-Handler Kann Nicht Sein, Nicht Erhöht in einem Standard-Dokument in IIS 7 oder IIS 7.5 im Integrierten Modus).
Habe ich diese zwei Updates, die das Problem beheben, verwenden Sie entweder.
1) Fügen Sie diesen code in Global.asax
2) Erstellen Sie eine Formen ControlAdapter
Registrieren, indem Sie diese Datei in App_Browsers\Default.Browser
InformationsquelleAutor der Antwort TheCodeKing
Weitere option ist zu überprüfen, ob die form action leer ist, direkt vor dem Rendern der Seite. Dieser arbeitete für mich:
InformationsquelleAutor der Antwort Eric
Wenn Sie interessiert sind, hinzufügen von ein paar extra-code in Ihrem Standard.aspx-Datei, dann kann Ihnen der Ansatz ähnlich definiert im blog-Beitrag hier; Das ist etwa das umleiten der Benutzer denselben default-Seite, aber mit expliziten-Seite name....
//code, kopiert aus dem blog erwähnt
InformationsquelleAutor der Antwort Waqas
Haben Sie versucht, die Einstellung Ihrer Bild-Taste, um den Befehl Ereignis eher als 'Klick'?
Ich denke, es könnte möglich sein, dass ein Bild klicken, führt dies nicht zu einem vollständigen postback, vielleicht versuchen Sie definieren Dinge wie folgt:
Dann definieren Sie Ihre Schaltfläche, wie diese:
Ich glaube mich zu erinnern, dass zu tun, dies zu ermöglichen ein Bild Schaltfläche "submit" in ein Formular, also ich nehme an, dadurch wird der postback Sie nach.
InformationsquelleAutor der Antwort dougajmcdonald
Ich hatte mal ein ähnliches problem. Das problem war, dass in IIS die Standard-Dokument wurde so konfiguriert, dass als Standard.aspx, aber der name meiner Seite war Standard.aspx. Es war nur eine Frage der groß-und Kleinschreibung.
InformationsquelleAutor der Antwort slfan
Wenn ich aktualisiert mein web-Projekt von VS 2005 (.Netto-2.5) , VS2010 (.Net 4.0), Folgendes wurde eingefügt durch VS2010 in meine web.config:
Wenn ich navigiert "http://myserver/mywebsite"; ich war früher in der Lage zu tun, unter .Net 2.5, bekam ich
"HTTP-Fehler 500.19 - Internal Server Error
"Die angeforderte Seite kann nicht zugegriffen werden, da die zugehörigen Konfigurationsdaten für die Seite ungültig sind." (Es erscheint der "defaultDocument" Knoten).
Allerdings konnte ich das problem lösen Sie ganz einfach im web.config einfach durch einfügen von "/" am Anfang der Standard-web-Seite-Wert, wie unten dargestellt:
Hatte ich nicht zu tun all die anderen Dinge vorgeschlagen, die von den anderen Befragten.
Gibt es irgendwelche unbeabsichtigten Konsequenzen oder fallen ab, es zu tun auf diese Weise?
InformationsquelleAutor der Antwort Hoyacoder
Wenn Ihr Formular Prozessor-Aktion ist nicht in der Wurzel, die Sie sollten in der Lage sein, verwenden Sie einen absoluten Pfad ohne die Datei name.
Getestet .NET 2.0
Ist das Problem aufgetreten, mit leerer Aktion Weg, aber richtig geklappt hat mit path-Eintrag.
InformationsquelleAutor der Antwort vividsoup
Erwägen Sie die Verwendung der URL-Mappings erfolgt über den Webbrowser.config. So vermeiden Sie zusätzlichen code in Ihre app und lassen Sie IIS für Sie arbeiten.
Stellen Sie sicher, dass beide Versionen, die URL mit und ohne endenden slash.
Können Sie auch erstellen, Umleitungen von virtuellen Ordnern, wenn Sie benötigen änderungen schnell und nicht wollen, um den Quellcode ändern (siehe oben, mit "diesem-Ordner-does-not-exist' Beispiel).
InformationsquelleAutor der Antwort