2011-01-10 13 views
0

Nach MSDN hidden fields section,ASP.NET Versteckte Felder Daten nur in einem Postback verfügbar? Warum?

Damit versteckten Feldwerten während der Seitenverarbeitung zur Verfügung steht, müssen Sie die Seite über einen HTTP-POST-Befehl senden. Wenn Sie ausgeblendete Felder verwenden und eine Seite als Reaktion auf einen Link oder einen HTTP-GET-Befehl verarbeitet wird, sind die ausgeblendeten Felder nicht verfügbar.

Wenn ich einen Hidden Steuerelement zur Entwurfszeit und setzen Sie den Wert Wert in ihm zur Entwurfszeit oder in dem Init-Ereignisse in ASP.NET, warum sollte ich nicht in der Lage zu lesen/Prozess hinzufügen, wenn eine Seite ist zuerst angefordert?

+1

Haben Sie versucht, auf die Werte * control * zuzugreifen? Sie sollten sehen, dass der Wert verfügbar ist, IIRC (was auch immer der Standardwert ist oder was auch immer Sie vorher festgelegt haben). Ich glaube, das sagt nur, dass versteckte Felddaten nicht vom Client-> Server * in * einer GET-Anfrage gesendet werden. ASP.NET dreht sich um das erneute Erstellen von Steuerelementen als primären Mechanismus, um den Status wiederherzustellen. –

+0

Wie versuchen Sie, den Wert zu lesen? Wenn Sie die Quelle der Seite im Browser sehen, sehen Sie dort Ihren versteckten Feldwert? – patmortech

+0

@pst Ich habe eigentlich nicht versucht, den Wert zu kodieren und auf den Wert zuzugreifen, eher folge ich in meinem Buch und sah dies und war verwirrt. – contactmatt

Antwort

0

Wie haben Sie Ihr verstecktes Feld definiert?

Sie müssen verstecktes Feld als runat = „server“ wie diese machen:

<input id="something" type="hidden" value="something that is hidden" runat="server" /> 

Dann können Sie dieses Feld auch auf Server zugreifen, wenn es dir Anforderung ist.

protected void Page_Load(object sender, EventArgs e) 
{ 
    Response.Write(string.Format("{0} came from hidden field", something.Value)); 
}