kullanarak JSON verilerini kabul eden bir genel işleyiciye veri gönder JQuery kullanarak veri yüklemek için bir ASP.NET Genel İşleyicisine erişmekte olduğum bir durum var. Ancak JavaScript'ten yüklenen veriler arama motoru tarayıcılarına görünmediğinden, C# 'den veri yüklemeye ve JQuery için önbelleğe almaya karar verdim. İşleyicimin arkasında kodda tekrar uygulamak istemediğim bir çok mantık var.C#
public void ProcessRequest(HttpContext context)
{
JavaScriptSerializer jsonSerializer = new JavaScriptSerializer();
string jsonString = string.Empty;
context.Request.InputStream.Position = 0;
using (var inputStream = new System.IO.StreamReader(context.Request.InputStream))
{
jsonString = inputStream.ReadToEnd();
}
ContentType contentType = jsonSerializer.Deserialize<ContentType>(jsonString);
context.Response.ContentType = "text/plain";
switch (contentType.typeOfContent)
{
case 1: context.Response.Write(getUserControlMarkup("SideContent", context, contentType.UCArgs));
break;
}
}
gelen C# işlevini getUserControlMarkup()
çağırabilir ama bunu arama sırasında bazı URL bazlı koşullar uygulamak zorunda kalacak: İşte benim Handler kodudur. contentType.typeOfContent
aslında URL parametrelerini temel alır.
JSON verilerini bu işleyiciye göndermek mümkün ise, lütfen bana bunu nasıl yapacağımı söyleyin. Böyle işleyicisi erişmeye çalışıyorum:
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(Common.host + "Handlers/SideContentLoader.ashx?typeOfContent=1&UCArgs=cdata");
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
Ama onun çizgisinde Handler kodunda NullReferenceException
vererek: ContentType contentType = jsonSerializer.Deserialize<ContentType>(jsonString);
? Bazı kısmi sayfaları veya sayfa doluluklarını güncellemeyi denediniz mi? – viyancs
İçeriği JavaScript’ten bir div’e yüklemeyi deniyorum ve aynı zamanda arama motorlarına da görünür olmasını istedim. –
Sunucu tarafında C# 'den çağırdığınızdan, neden genel bir işleyici ile rahatsız oluyorsunuz? Neden sadece bir yöntemi doğrudan aramıyoruz? – mason