Должен ли я использовать Viewstate в ASP.NET - PullRequest
4 голосов
/ 25 сентября 2008

Я перехожу с классического ASP на ASP.NET и столкнулся с тем, что многие из вас уже называют "viewstate". Я могу прыгать с пистолетом с моим предположением, но это выглядит очень громоздким. В прошлом я разработал много форм ASP и никогда не имел проблем с сохранением состояния. Есть ли другой способ ИЛИ мне придется изучить эту вещь Viewstate в ASP.NET? Я использую Visual Studio 2008, VB.NET в качестве кода языка и Framework v3.5 с SQL Server 2005.

Ответы [ 13 ]

1 голос
/ 25 сентября 2008

Если вы пишете код для собственного потребления, вы можете просто отключить его и не беспокоиться.

Предположительно, вы собираетесь поддерживать код Web Forms, написанный другими людьми, поэтому вы должны знать, каковы параметры конфигурации и основные моменты. Лучшие несколько, которые я могу придумать

  • как отключить его на сайте, странице и уровне управления
  • почему MachineKey имеет значение в веб-фермах
  • почему ваш журнал событий полон ошибок ViewStateAuthentication
  • что такое ViewStateUserKey

С точки зрения реальной кривой обучения, это, вероятно, подробное прочтение пары статей MSDN.

1 голос
/ 25 сентября 2008

Viewstate автоматически сохраняется для элементов управления asp.net, «укорененных» на странице. Вам мало что нужно сделать, значения и некоторая другая информация передаются в скрытом виде в кодировке B64. Вы можете посмотреть на это, если хотите, но это не имеет значения, все это обрабатывается автоматически.

0 голосов
/ 05 декабря 2013
'<%@ Control Language="C#" AutoEventWireup="true" CodeFile="HomePage.ascx.cs" Inherits="HomePage" %>
<script runat="server">
  void testHF_ValueChanged(object sender, EventArgs e)
    {
       this.HFvalue.Text = this.testHF.Value ;

    }
</script>
<asp:Label ID="UserNamelbl" runat="server" Text="User Name : " Visible="false"></asp:Label>
<asp:TextBox ID="UserNametxt" runat="server" Visible="false" ></asp:TextBox>
 <asp:Label ID="HFvalue" Text="......" runat="server"></asp:Label>
 <asp:HiddenField ID="testHF"
OnValueChanged="testHF_ValueChanged"
value="" 
runat="server" ></asp:HiddenField>
<input type="submit" name="SubmitButton" value="Submit" onclick="CL()" />

<script type="text/javascript">
    function CL() 
    {
        this.testHF.Value = this.UserNametxt.Text;  
    }
</script>
'
...