Condividi tramite


HttpCapabilitiesBase.RequiresSpecialViewStateEncoding Proprietà

Definizione

Ottiene un valore che indica se il browser richiede VIEWSTATE la codifica speciale dei valori.

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

Valore della proprietà

true se il browser richiede VIEWSTATE che i valori siano codificati in modo speciale; in caso contrario, false. Il valore predefinito è false.

Esempio

Nell'esempio di codice seguente viene illustrato come determinare se il browser richiede VIEWSTATE la codifica speciale dei valori.

<%@ 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>

Commenti

HTTP è un protocollo senza stato ed VIEWSTATE è un meccanismo usato per rendere persistenti le modifiche del client tra più richieste. Ogni controllo in una pagina Web contiene una ViewState proprietà che rappresenta l'accumulo di eventuali modifiche apportate dal client. In una pagina Web Form queste modifiche vengono codificate nei dati di postback come di value un elemento HTML <input> con un type attributo .hidden Per esempio:

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

Se true, i caratteri non alfabetici nel VIEWSTATE valore non verranno inviati correttamente dal browser né da un gateway intermedio. Per risolvere questo problema, gli adattatori di controllo server sostituiscono caratteri non alfabetici nel VIEWSTATE valore con quelli che non richiedono la codifica nelle richieste HTTP.

Si applica a