Adikku baru-baru ini terpaksa menggunakan Ajax, jadi dia menggunakan asp.net ajax untuk mengimplementasikannya. Sederhana saja, dan selesai dalam beberapa klik... Tapi masalahnya langsung muncul, dan bertentangan dengan url saya. menulis ulang. Modul penulisan ulang url saya ditulis sendiri. Saya membuat filter dan memecahkan masalah lokasi pengiriman formulir server yang salah. Tapi sekarang, selama saya menggunakan ajax untuk postback untuk kedua kalinya, kesalahan 404 akan dilaporkan ., Saya datang ke cnblogs dan melihat seseorang membicarakan masalah ini, dan sebenarnya mengatakan bahwa ini dapat diselesaikan dengan memodifikasi tindakan. Saya sangat bingung, saya telah menyelesaikan masalah tindakan sejak lama, dan sepertinya itu yang terbaik solusi... Jadi saya membuka program kait, saya menangkap alamat posting terakhir dari setiap IE, dan menemukan bahwa setelah postback kedua ajax, alamat pengirimannya (bukan tindakan halaman, tetapi sesuatu yang disebut form._initialAction dihasilkan oleh js di dalam aspnet ajax) tentu saja akan ada masalah jika Anda mengubahnya ke jalur relatif, jadi jika Anda menemukan bahwa penulisan ulang url bertentangan dengan ajax, harap perhatikan untuk menguji masalah ini, dan jangan biarkan semuanya berlalu online sebelum menemukan masalahnya...Jangan berpikir semuanya akan baik-baik saja jika Anda mengubah tindakan. ...Sebenarnya, menurut saya masalah ini adalah cacat dari "ASP.NET AJAX RC1". Bukankah lebih baik jujur dan mengambil tindakan saja daripada melakukan banyak hal aneh? Tentu saja, saya tidak memahami prinsip desainnya. Saya kira dia punya alasannya sendiri. Kode yang relevan untuk mengatasi masalah ini adalah sebagai berikut:
<!--Ajax Script Manager-->
<asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager>
<skrip tipe="teks/javascript">
Sys.Application.add_load(fungsi()
{
var form = Sys.WebForms.PageRequestManager.getInstance()._form;
var href = jendela.lokasi.href;
if(href.indexOf("?") > 0)
{
href += "&a=" + Matematika.acak();
}
kalau tidak
{
href += "?a=" + Matematika.acak();
}
form._initialAction = href;
bentuk.aksi = href;
});
</skrip>
Anda mungkin telah memperhatikan bahwa kode ini menambahkan nomor acak ke alamat. Ini sebenarnya untuk menyelesaikan masalah terakhir (konflik cache browser), tetapi tidak diselesaikan dengan baik. . .
Oke, konflik penulisan ulang telah teratasi, dan masalah kedua muncul lagi. . . Setelah spekulasi, menurut saya ini adalah masalah cache browser. Saya membuat fungsi untuk menambah dan menghapus tag. Tak perlu dikatakan lagi, menambahkannya adalah dengan meletakkan ImageButton di Repeater. Melalui acara kliknya, gunakan CommandName untuk menambahkan tag saat ini dikirim kembali dan dihapus. Saat ini, masalah terjadi. Setelah saya menambahkan beberapa tag dan mengklik salah satunya untuk menghapus, daftar tag di panel pembaruan kembali ke keadaan sebelum menambahkan yang pertama, jadi saya curiga itu di-cache oleh masalah browser, saya dengan bodohnya menambahkan Response.Cache.SetNoStore();
Response.Cache.SetLastModified(DateTime.Now); semoga bisa mengatasi masalah, tapi nyatanya tidak ada gunanya haha, jadi saya menggunakan kode js di atas untuk menambahkan nomor acak di akhir url saat menugaskan formulir. _initialAction., hasilnya masih tidak valid. . . Saya kira masalah terjadi ketika nomor acak ini tidak mendapatkan efek setiap saat, tetapi saya benar-benar tidak punya waktu untuk memahami prinsip asp.net ajax secara mendalam, jadi saya berharap teman-teman yang tahu cara mengatasi masalah ini bisa bantu aku menyelesaikannya dulu, Xiaodi Kembali dan pelajari lagi.
http://www.cnblogs.com/cnlamar/archive/2007/01/08/614671.html