Aracılığıyla paylaş


HttpCapabilitiesBase.RequiresSpecialViewStateEncoding Özellik

Tanım

Tarayıcının VIEWSTATE değerlerin özel olarak kodlanıp kodlanmadığını belirten bir değer alır.

public:
 virtual property bool RequiresSpecialViewStateEncoding { bool get(); };
public virtual bool RequiresSpecialViewStateEncoding { get; }
member this.RequiresSpecialViewStateEncoding : bool
Public Overridable ReadOnly Property RequiresSpecialViewStateEncoding As Boolean

Özellik Değeri

Boolean

true tarayıcı, değerlerin özel olarak kodlanmış olmasını gerektiriyorsa VIEWSTATE ; değilse, false. Varsayılan değer: false.

Örnekler

Aşağıdaki kod örneği, tarayıcının VIEWSTATE değerlerin özel olarak kodlanıp kodlanmayacağının nasıl belirleneceğini gösterir.

<%@ page language="C#"%>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
    void Page_Load(Object Sender, EventArgs e)
    {
        CheckBrowserCaps();
    }

    void CheckBrowserCaps()
    {
        String labelText = "";
        System.Web.HttpBrowserCapabilities myBrowserCaps = Request.Browser;
        if (((System.Web.Configuration.HttpCapabilitiesBase)myBrowserCaps).RequiresSpecialViewStateEncoding)
        {
            labelText = "Browser requires view state values to be specially encoded.";
        }
        else
        {
            labelText = "Browser does not require view state values to be specially encoded.";
        }

        Label1.Text = labelText;
    }
</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
    <title>Browser Capabilities Sample</title>
</head>
<body>
    <form runat="server" id="form1">
        <div>
            Browser Capabilities:
            <p/><asp:Label ID="Label1" Runat="server" />
        </div>
    </form>
</body>
</html>
<%@ page language="VB" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
    Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs)
        CheckBrowserCaps()
    End Sub

    Function CheckBrowserCaps()

        Dim labelText As String = ""
        Dim myBrowserCaps As System.Web.HttpBrowserCapabilities = Request.Browser
        If (CType(myBrowserCaps, System.Web.Configuration.HttpCapabilitiesBase)).RequiresSpecialViewStateEncoding Then
            labelText = "Browser requires view state values to be specially encoded."
        Else
            labelText = "Browser does not require view state values to be specially encoded."
        End If

        Label1.Text = labelText

    End Function 'CheckBrowserCaps
</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
    <title>Browser Capabilities Sample</title>
</head>
<body>
    <form runat="server" id="form1">
        <div>
            Browser Capabilities:
            <p/><asp:Label ID="Label1" Runat="server" />
        </div>
    </form>
</body>
</html>

Açıklamalar

HTTP durum bilgisi olmayan bir protokoldür ve VIEWSTATE istemci değişikliklerini birden çok istekte kalıcı hale getirmek için kullanılan bir mekanizmadır. Bir Web sayfasındaki her denetim, istemci tarafından yapılan değişikliklerin birikmesi temsil eden bir ViewState özellik içerir. Web Forms sayfasında, bu değişiklikler geri gönderme verilerinde özniteliğine hiddensahip type bir HTML <input> öğesi olarak value kodlanır. Örneğin:

<input type="hidden" name="__VIEWSTATE" value="t0PH_u56?cDxleHQ7P=" />  

ise true, değerdeki VIEWSTATE alfabetik olmayan karakterler tarayıcı veya ara ağ geçidi tarafından doğru gönderilmez. Bunu düzeltmek için, sunucu denetim bağdaştırıcıları değerdeki alfabetik olmayan karakterleri HTTP isteklerinde VIEWSTATE kodlama gerektirmeyen karakterlerle değiştirir.

Şunlara uygulanır