Mein Bruder war kürzlich gezwungen, Ajax zu verwenden, also verwendete er asp.net ajax, um es zu implementieren. Nun, es war einfach und mit ein paar Klicks erledigt ... Aber das Problem trat sofort auf und es widersprach meiner URL Ich habe mein URL-Rewriting-Modul selbst geschrieben und das Problem des falschen Übermittlungsorts des Serverformulars gelöst. Solange ich Ajax zum zweiten Mal verwende, wird ein 404-Fehler gemeldet .Ich bin zu cnblogs gekommen und habe gesehen, wie jemand über dieses Problem gesprochen hat, und tatsächlich gesagt, dass es durch Ändern der Aktion gelöst werden kann. Ich habe das Aktionsproblem vor langer Zeit gelöst und es schien das Beste zu sein Lösung ... Also habe ich ein Hook-Programm geöffnet, die endgültige Postadresse jedes IE erfasst und festgestellt, dass nach dem zweiten Postback von Ajax seine Übermittlungsadresse (nicht die Aktion der Seite, sondern etwas namens form._initialAction) generiert wurde von js in aspnet ajax) wird sein Natürlich wird es Probleme geben, wenn Sie es in einen relativen Pfad ändern. Wenn Sie also feststellen, dass das Umschreiben von URLs mit Ajax in Konflikt steht, achten Sie bitte darauf, dieses Problem zu testen, und lassen Sie die Dinge nicht auf sich beruhen online, bevor Sie das Problem entdecken ... Ich glaube nicht, dass alles gut wird, wenn Sie die Aktion ändern ... Tatsächlich denke ich, dass dieses Problem ein Fehler von "ASP.NET AJAX RC1" ist. Wäre es nicht besser, ehrlich zu sein und einfach zu handeln, anstatt so viele seltsame Dinge zu tun? Natürlich verstehe ich seine Designprinzipien nicht. Ich denke, er hat seine eigenen Gründe, dieses Problem zu lösen:
<!--Ajax Script Manager-->
<asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager>
<script type="text/javascript">
Sys.Application.add_load(function()
{
var form = Sys.WebForms.PageRequestManager.getInstance()._form;
var href = window.location.href;
if(href.indexOf("?") > 0)
{
href += "&a=" + Math.random();
}
anders
{
href += "?a=" + Math.random();
}
form._initialAction = href;
form.action = href;
});
</script>
Sie haben vielleicht bemerkt, dass dieser Code der Adresse eine Zufallszahl hinzufügt. Eigentlich dient er dazu, das letztere Problem (Browser-Cache-Konflikt) zu lösen, aber es wird nicht gut gelöst. . .
OK, der Umschreibungskonflikt wurde gelöst und das zweite Problem trat erneut auf. . . Nach Spekulationen denke ich, dass es sich um ein Browser-Cache-Problem handelt. Selbstverständlich besteht das Hinzufügen darin, einen ImageButton in den Repeater einzufügen und CommandName zum Hinzufügen des aktuellen Tags zu verwenden Zu diesem Zeitpunkt trat das Problem auf, nachdem ich mehrere Tags hinzugefügt und auf eines davon geklickt hatte, um es zu löschen das Problem, ich habe dummerweise Response.Cache.SetNoStore(); im Servercode hinzugefügt.
Response.Cache.SetLastModified(DateTime.Now); Ich hoffe, es kann das Problem lösen, aber tatsächlich ist es nutzlos, haha, also habe ich beim Zuweisen des Formulars den obigen js-Code verwendet, um eine Zufallszahl am Ende der URL hinzuzufügen. _initialAction. Zahl, das Ergebnis ist immer noch ungültig. . . Ich vermute, dass das Problem auftritt, wenn diese Zufallszahl nicht jedes Mal die Wirkung erzielt, aber ich habe wirklich keine Zeit, die Prinzipien von asp.net Ajax eingehend zu verstehen, also hoffe ich, dass Freunde, die wissen, wie man dieses Problem löst, es können Hilf mir, es zuerst zu lösen, Xiaodi. Geh zurück und studiere es noch einmal.
http://www.cnblogs.com/cnlamar/archive/2007/01/08/614671.html