Kullanıcıların dosya indirmesi için bazı bağlantılar sağlayan bir kılavuzum var. Dosyalar uygulamanın dışında saklanır, yol referansları veritabanından okunur ve istenen her bir dosyaya hizmet vermek için bir HTTP işleyicisi (* .ashx) kullanılır. Bununla birlikte, var olmayan bir dosyaya işaret eden bir veritabanı girişi olabileceği düşünülmektedir. FileNotFoundException
'u yakalarım, ancak eksik dosya hakkında kullanıcıyı bilgilendirmek için en iyi yöntem hangisi olacağından emin değilim (böylece desteğe başvurabilirler).Bir dosyada 404 işlemek için en iyi yol HTTP işleyicisi indir?
İlk fikir, yanıt için standart bir 404 kodu belirlemektir ve şu an yaptığım şey budur.
Eksik bir dosya hakkında bir bildirim (jQuery) görüntülemek daha yararlı bir yol olacaktır, ancak dosya indirme AJAX'ta yapılmadığından, bu iki adımlı bir işlemi içerecektir - istemci tarafı onclick işleyicisi bir web hizmetini çağırır Eğer dosya varsa, kontrol etmek için metot, daha sonra tıklamayı iptal ederim (false) ve kullanıcıya dostça bir mesaj gösteriyorum. Ancak dosya varsa, normal yürütme ile devam ediyorum. Ama bu yine başka bir sunucu çağrısı ekler.
Benzer bir sorunla da uğraştınız mı? Bunu nasıl çözdün?
Bazı açıklamalar - uygulama ASP.NET 2.0'da yerleşiktir ve web servis yöntemlerini çağırmak için jQuery'yi kullanır.
Ancak, eksik bir dosya durumu ile bir sayfa eksik olduğunda ayırt edemiyorum. 404 sayfasında, "bir dosyayla iletişim desteğini indirmeye çalışıyorsanız, bulunamayacağı bir sayfaya erişmeye çalışıyorsanız," gibi daha ayrıntılı bir açıklama yapabilirim ...) –
Belirli bir 404 sayfasında bulunmayan bir dosyaya yeniden yönlendirmek için HTTP işleyicinizde uygulayabilirsiniz, aksi takdirde 'normal' bir 404 döndürürsünüz? – RuudKok
Doh! Tabii ki yönlendirme çalışıyor! Basit bir Response.Redirect() yapmak yerine bir durum kodu ileterek 404 sayfasına yönlendirmek için Framework'e güveniyordum. Çok açık ... Teşekkürler! –