PDA

View Full Version : نمایش صفحه ASPX به صورت Html



Sayehzendeh
سه شنبه 05 تیر 1386, 11:41 صبح
من میخوام یک صفحه aspx در C# را به صورت Html در Browser نمایش دهم.
یعنی صفحه Aspx همان ماهیت خودشو داشته باشه ولی در Browser به صورت Html نمایش داده شود.

به عنوان مثال:

news.aspx در host هست ولی در زمان مشاهده به صورت news.html در Browser نمایش
داده می شود.

با تشکر.

azmoodeh
سه شنبه 05 تیر 1386, 12:12 عصر
راه حلی که خیلی از سایتها برای این کار استفاده می کنن و قابل توسعه هم هست HttpModule , HttpHandler هست.
یه مقاله خیلی خوب هم توی همین سایت در این مورد هست

حامد مصافی
سه شنبه 05 تیر 1386, 18:39 عصر
من که متوجه نشدم.
میشه واضح تر بپرسید؟

Sayehzendeh
چهارشنبه 06 تیر 1386, 12:00 عصر
دست شما درد نکنه.
من از HttpHandler استفاده کردم و تونستم این کار را انجام دهم ولی نمی دونم صفحه اصلی
که .Aspx است را چگونه صدا بزنم.
Response.Redirect("xxx.aspx");
اینجوری کار نمیکنه. یعنی صفحه به صورت عادی نمایش داده می شود.
اگرم اینجوری بنویسم : Response.Redirect("xxx.mystring");
هر چیزی که تو کلاس Httphandler نوشتم را میاره و محتویات صفحه منو نمیاره.

azmoodeh
چهارشنبه 06 تیر 1386, 12:05 عصر
میشه کد Handler رو که استفاده می کنید بذارید؟

Sayehzendeh
چهارشنبه 06 تیر 1386, 13:18 عصر
using System.Web;
using System.Web.UI;
public class HelloWorldHandler : IHttpHandler
{
public HelloWorldHandler()
{
}
public void ProcessRequest(HttpContext context)
{
HttpRequest Request = context.Request;
HttpResponse Response = context.Response;
// This handler is called whenever a file ending
// in .sample is requested. A file with that extension
// does not need to exist.
Response.Write("<html>");
Response.Write("<body>");
Response.Write("<h1>Hello from a <a href='Default.sample'> synchronous </a>custom HTTP handler.</h1>");
Response.Write("Type: " + Request.Browser.Type + "<br>");
Response.Write("</body>");
Response.Write("</html>");
}
public bool IsReusable
{
// To enable pooling, return true here.
// This keeps the handler in memory.
get { return false; }
}

توی متد ProcessRequest چی باید بنویسم.


<httpHandlers>
<add verb="*" path="*.sample" type="HelloWorldHandler"/>
</httpHandlers>

Neo Persian
چهارشنبه 06 تیر 1386, 14:35 عصر
آیا این همون کاری هست که بعضی از سیستم ها مثل vBulletin انجام میده؟ توی بعضی از فروم تمام تاپیک ها به یه صفحه HTML تبدیل میشوند و فکر کنم این باعث میشه فشاری روی سرور نباشه

آیا این هم همونه؟؟

azmoodeh
چهارشنبه 06 تیر 1386, 15:05 عصر
سلام دوست عزیز
این کدی که شما قرار دادید که یک Sample هست در مورد اصول اولیه هندلر !!!! احتمالا خودم هم اینو داشتم !!!!
به هر حال سعی می کنم طی یکی دو روز آینده یا کد مورد نظرتون رو پیدا کنم یا براتون بنویسم. ببخشید.چون واقعا سرم شلوغه ! از طرفی این باعث نشه که شما هم دنبال راه حل نباشید !
موفق باشید

Sayehzendeh
چهارشنبه 06 تیر 1386, 15:12 عصر
بله درست این یک Sample هست و از شما تشکر میکنم.
اگر کمکم کنید ممنون میشم.

Sayehzendeh
چهارشنبه 06 تیر 1386, 18:39 عصر
من تونستم این کارو انجام بدم .
ولی وقتی داخل پروژه ام از MasterPage استفاده می کنم این درست کار نمیکنه و منطقی
هم است.


public void ProcessRequest(HttpContext context)
{
string PagePath = context.Request.MapPath(context.Request.AppRelativ eCurrentExecutionFilePath);
PagePath = PagePath.Replace(".Html", ".aspx");
context.Response.TransmitFile(PagePath);
}

Sayehzendeh
چهارشنبه 13 تیر 1386, 09:53 صبح
سلام
من چگونه این عملیات انجام بدم وقتی از MasterPage استفاده می کنم؟

Sayehzendeh
یک شنبه 17 تیر 1386, 11:48 صبح
کسی نیست مشکل منو حل کنه Master Page را جه کار کنم