PDA

View Full Version : چگونگي دريافت اطلاعات از Generic Handler



ali_shmki
یک شنبه 07 شهریور 1389, 16:02 عصر
سلام خدمت اساتيد محترم.
من يك Generic Handler دارم كه يه كار ساده واسه من انجام ميده:
public class captcha : IHttpHandler
{

public void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "text/plain";
context.Response.Write("Hello World");

}


public bool IsReusable
{
get
{
return false;
}
}
}

اما سوال من اينه كه چه طور ميتونم خروجي اين فايل رو از يك فايل aspx.cs دريافت كنم. مثلا با متد ()response.write اونو توي خروجي نمايش بدم؟

amordad
یک شنبه 07 شهریور 1389, 19:19 عصر
سلام دوست من
با اینکه شما خود استاد بنده هستید اما جسارتاً عرض میکنم که HTTPHANDLER ها جهت ایجاد راه انداز های فایل هستند. یعنی به این صورت که شما میخواهید فایل هایی از نوع ALI. را اجرا کنید
و بعد از نوشتن HANDLER مربوطه باید آن را در WEB.CONFIG رجیستر کنیدتا فایل های با پسوند ALI از این به بعد قابل اجرا باشند و کاربرد دیگری ندارند.
موفق باشید

ali_shmki
یک شنبه 07 شهریور 1389, 21:00 عصر
ضمن تشكر از پاسخ مفيدي كه داديد اما من جواب سوالم رو نگرفتم. من از كاربرد اين نوع فايل ها سوال نكردم بلكه از نحوه استفاده از اونها سوال دارم.
ببينيد اگر ما مثلا نوع خروجي اين فايل رو از نوع image/jpeg بگيريم، اونوقت براي اينكه بتونيم از خروجي اين فايل استفاده كنيم، مياييم و توي فايل aspx از يك كنترل image استفاده ميكنيم و خاصيت image url اونو برابر با اسم فايل ashx قرار ميديم. به اين صورت:

<asp:Image ID="Image1" ImageUrl="~/captcha.ashx" runat="server" />

خب حالا من ميخوام خروجي رو از نوع text/plain بگيرم. چه طور ميتونم اين خروجي رو دريافت كنم.

شما از كاربرد حرف زديد. من يك نمونه از كاربرد ها رو كه آقاي راد گفتن ميگذارم كه مياد و با استفاده از ajax خروجي اين فايل ها رو ميگيره و توي صفحه html ، وارد ميكنه. اينجا:

http://barnamenevis.org/forum/showthread.php?t=90170

raziee
یک شنبه 07 شهریور 1389, 22:04 عصر
شما میخواهید بعد از زمان بارگذاری و در سمت کلاینت به این هندلری که نوشتید دسترسی داشته باشید دیگه.
برای اینکار شما باید با جاوا اسرکیپت(یا هر زبان طرف کلاینت ) بیاید یه درخواست به این هندلر بدید و مقدار برگشتی رو به یک لیبل، دیو یا هر چیز دیگه ای جایگذاری کنید.

مثلا من یک فایل html نوشتم که میاد بوسیله ی jquery به یک هندلر درخواست میده و خروجی گرفته شده رو در صفحه میگنجونه.

ali_shmki
یک شنبه 07 شهریور 1389, 22:56 عصر
:گریه::گریه:

ما میخواهید بعد از زمان بارگذاری و در سمت کلاینت به این هندلری که نوشتید دسترسی داشته باشید دیگه.

عزيزان! لطفا يك بار سوال منو بخونيد و بعد كه متوجه شديد من چي ميخوام، جواب منو بديد. از شما با اين سابقه فعاليت بعيده.

من كي از client حرف زدم؟ من ميگم با response.write ميخوام خروجي رو چاپ كنم. نميدونم شما از سوال من و از response.write چي برداشت كرديد كه ميگيد client !!!

ali_shmki
دوشنبه 08 شهریور 1389, 11:03 صبح
كسي جواب منو نميده؟ فكر نميكردم تا اين حد سوال سختي باشه.

raziee
دوشنبه 08 شهریور 1389, 11:25 صبح
من كي از client حرف زدم؟ من ميگم با response.write ميخوام خروجي رو چاپ كنم. نميدونم شما از سوال من و از response.write چي برداشت كرديد كه ميگيد client !!!
آخه هر وقت حرف از استفاده از هندلر میشه من ذهنم میره سمت کلاینت.
اینکه میگید تو سمت سرور میخواهید ازش استفاده کنید برای چیه؟
یعنی چه هدفی رو دنبال میکنید؟
چه الگوریتمی رو دارید برای این کار که باید با هندلر پیادش کنید؟
اگه میخواهید سمت سرور یه مقداری رو بگیرید و تو page بنویسید چرا از یک کلاس معمولی استفاده نمیکنید؟

General-Xenon
دوشنبه 08 شهریور 1389, 11:35 صبح
سلام خدمت اساتيد محترم.
من يك Generic Handler دارم كه يه كار ساده واسه من انجام ميده:
public class captcha : IHttpHandler
{

public void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "text/plain";
context.Response.Write("Hello World");

}


public bool IsReusable
{
get
{
return false;
}
}
}

اما سوال من اينه كه چه طور ميتونم خروجي اين فايل رو از يك فايل aspx.cs دريافت كنم. مثلا با متد ()response.write اونو توي خروجي نمايش بدم؟


سلام.
این لینک شاید بتونه به شما کمک کنه. (http://ir-dotnet.blogfa.com):چشمک: