Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 如何创建在Web服务器上保存视图和控制状态的PageStatePersister对象_Asp.net_C# 4.0 - Fatal编程技术网

Asp.net 如何创建在Web服务器上保存视图和控制状态的PageStatePersister对象

Asp.net 如何创建在Web服务器上保存视图和控制状态的PageStatePersister对象,asp.net,c#-4.0,Asp.net,C# 4.0,在阅读一本书时,我设法创建了一个类,该类被用作基类,用于重写Load和Save方法,以提取视图状态信息并将其保存到服务器。然而,在本书中,作者建议转到以下链接并查看示例以执行以下操作: 您可以使用页面适配器,而不是使用页面基类。这将改变 所有页面的功能,而无需更改其基类。那太好了 如果要在服务器上存储所有页面的ViewState。发现 了解如何使用的GetStatePersister方法为所有页面存储ViewState PageAdapter类,请访问: 我所要做的就是找到一种保存ViewSta

在阅读一本书时,我设法创建了一个类,该类被用作基类,用于重写Load和Save方法,以提取视图状态信息并将其保存到服务器。然而,在本书中,作者建议转到以下链接并查看示例以执行以下操作:

您可以使用页面适配器,而不是使用页面基类。这将改变 所有页面的功能,而无需更改其基类。那太好了 如果要在服务器上存储所有页面的ViewState。发现 了解如何使用的GetStatePersister方法为所有页面存储ViewState PageAdapter类,请访问:

我所要做的就是找到一种保存ViewState的方法,而不必手动更改每个页面上的基类

我得到以下错误:

[ArgumentNullException: Value cannot be null.
Parameter name: stream]
   System.IO.StreamWriter..ctor(Stream stream, Encoding encoding, Int32 bufferSize, Boolean leaveOpen) +10409245
   System.IO.StreamWriter..ctor(Stream stream) +30
   dev.StreamPageStatePersister.Save() in a:\Project\Application\Web\dev\StreamPageStatePersister.cs:57
   System.Web.UI.Page.SavePageStateToPersistenceMedium(Object state) +108
   System.Web.UI.Page.SaveAllState() +659
   System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1225
以下是执行此操作所引用的链接:

StreamPageStatePersister.cs代码

MyPageAdapter.cs代码

最后,在浏览器文件中:

<browsers>
    <browser id="NewBrowser" parentID="Mozilla">
        <identification>
            <userAgent match="Unique User Agent Regular Expression" />
        </identification>

        <capture>
            <userAgent match="NewBrowser (?'version'\d+\.\d+)" />
        </capture>

        <capabilities>
            <capability name="browser" value="My New Browser" />
            <capability name="version" value="${version}" />
        </capabilities>
    </browser>

    <browser refID="Mozilla">
        <capabilities>
            <capability name="xml" value="true" />
        </capabilities>

      <controlAdapters>
        <adapter
            controlType="System.Web.UI.Page"
            adapterType="dev.MyPageAdapter" />
      </controlAdapters>
    </browser>  
</browsers>

我认为您应该为其他浏览器确定适配器。你能试试吗

adapterType=“Samples.AspNet.CS.MyPageAdapter”/>

namespace dev {

     using System.Security.Permissions;
     using System.Web;
     using System.Web.UI;

     [AspNetHostingPermission(SecurityAction.Demand, Level = AspNetHostingPermissionLevel.Minimal)]
    public class MyPageAdapter : System.Web.UI.Adapters.PageAdapter
    {

        public override PageStatePersister GetStatePersister()
        {
            return new dev.StreamPageStatePersister(Page);
         }
} }
<browsers>
    <browser id="NewBrowser" parentID="Mozilla">
        <identification>
            <userAgent match="Unique User Agent Regular Expression" />
        </identification>

        <capture>
            <userAgent match="NewBrowser (?'version'\d+\.\d+)" />
        </capture>

        <capabilities>
            <capability name="browser" value="My New Browser" />
            <capability name="version" value="${version}" />
        </capabilities>
    </browser>

    <browser refID="Mozilla">
        <capabilities>
            <capability name="xml" value="true" />
        </capabilities>

      <controlAdapters>
        <adapter
            controlType="System.Web.UI.Page"
            adapterType="dev.MyPageAdapter" />
      </controlAdapters>
    </browser>  
</browsers>