توضیحات و دانلود

نحوه غیر فعال کردن یا حذف فیلد پنهان ViewState در صفحه ASP.Net
0 0
نحوه غیر فعال کردن یا حذف فیلد پنهان ViewState در صفحه ASP.Net

با سلام در این مقاله با مثال نحوه استفاده از C # و VB.Net غیرفعال یا حذف ViewState Hidden Field در صفحه ASP.Ne را توضیح خواهیم دادt.
مسئله
حتی پس از غیر فعال کردن ViewState در سطح صفحه، سطح Master Page یا در Web.Config ، هنوز فیلد پنهانی ViewState با مقدار کمی داده رمزگذاری شده در صفحه وجود دارد همانطور که در شکل زیر نشان داده می شود .

راه حل
هیچ راه مستقیم برای غیرفعال کردن یا حذف ViewState Field مخفی وجود ندارد.
تنها راه ممکن برای حذف میدان دید پنهان ViewState با حذف آن از HTML تولید شده صفحه با کمک عبارات منظم است.
برای رسیدن به هدف فوق، رویداد رندر لغو خواهد شد و فیلد پنهان  ViewState از HTML تولید شده حذف خواهد شد.
فضاهای نام
شما باید فضای نامهای زیر را وارد کنید.
C #

using System.IO;
using System.Text;
using System.Text.RegularExpressions;

VB.Net 

Imports System.IO
Imports System.Text
Imports System.Text.RegularExpressions

کلاس پایه
یک کلاس جدید به نام BasePage به ارث بردن کلاس صفحه ایجاد خواهد شد. در داخل این کلاس رویداد رندر مجددا مورد بررسی قرار می گیرد و درون پردازنده رویداد رندر ، Fields مخفی شده نمایش ViewState با یک رشته Blank با استفاده از عبارات منظم جایگزین خواهد شد، بنابراین از HTML تولید شده صفحه حذف خواهد شد.
توجه :

کلاس BasePage باید توسط تمام صفحاتی که ViewState Field مخفی باید حذف شده، دریافت شود.
C #

public class BasePage : Page
{
    protected override void Render(HtmlTextWriter writer)
    {
        StringBuilder sb = new StringBuilder();
        StringWriter sw = new StringWriter(sb);
        HtmlTextWriter hWriter = new HtmlTextWriter(sw);
        base.Render(hWriter);
        string html = sb.ToString();
        html = Regex.Replace(html, "<input[^>]*id=\"(__VIEWSTATE)\"[^>]*>", string.Empty, RegexOptions.IgnoreCase);
        writer.Write(html);
    }
}

VB.Net

Public Class BasePage
    Inherits Page
    Protected Overrides Sub Render(ByVal writer As HtmlTextWriter)
        Dim sb As StringBuilder = New StringBuilder
        Dim sw As StringWriter = New StringWriter(sb)
        Dim hWriter As HtmlTextWriter = New HtmlTextWriter(sw)
        MyBase.Render(hWriter)
        Dim html As String = sb.ToString
        html = Regex.Replace(html, "<input[^>]*id=\""(__VIEWSTATE)\""[^>]*>", String.Empty, RegexOptions.IgnoreCase)
        writer.Write(html)
    End Sub
End Class

دریافت کلاس BasePage
کلاس BasePage اکنون در صفحه ASP.Net به جای کلاس صفحه دریافت خواهد شد.
C #

public partial class _Default : BasePage
{
    protected void Page_Load(object sender, EventArgs e)
    {
 
    }
}

VB.Net

Partial Class _Default
    Inherits BasePage
    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
 
    End Sub
End Class

عکس روی صفحه
فیلد پنهانی ViewState از صفحه حذف شده است

 

 


دانلود
  • لینک های دانلود دوره های آموزشی تا پایان دوره قابل دانلود می باشد.
  • برای خارج کردن فایل ها از حالت فشرده از ورژن جدید نرم افزار winrar استفاده کنید.
  • برای خارج کردن فایل ها از حالت فشرده لینک های دانلودی که چندین قسمت می باشند فقط قسمت اول را از حالت فشرده خارج کنید.
  • لطفا توضیحات نوشته شده برای مطالب را با دقت بخوانید.
  • برای نمایش فیلم ها می توانید از نرم افزار هایی مانند Km Player , VLC Player یا Media Player Classic استفاده کنید.

ارسال نظر
ارسال پیام به :