繁体   English   中英

如何修复ASP.NET C#中的“错误创建控制请求在这种情况下不可用”?

[英]How to repair “Error Creating Control Request is not available in this context” in ASP.NET C#?

我有一个解决方案,我可以简单地向其中添加Web表单和元素(标签,文本框等),并且一切都可以正确显示。 但是,有些Web表单在表单上每个元素的设计视图上显示此错误。

我注意到显示此错误的Web窗体是继承自BasePage而不是System.Web.UI.Page的Web窗体。

例。

using System;
using System.Data;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Collections.Generic;

namespace Station.Payments
{
    public partial class detailsPayment : BasePage
    {
        protected void Page_Load(object sender, EventArgs e)
        {

        }
    }
}

这是我的课程BasePage.cs

using System;
using System.Text;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Collections.Generic;
using Core;//Custom Library

namespace Station
{
    public class BasePage : Page
    {
        protected override void OnInit(EventArgs e)
        {
            if (Request.IsAuthenticated)
            {
                base.OnInit(e);
            }

            else
            {
                Session.Abandon();
                Response.Redirect("~/Login.aspx");
            }
        }

        public UserLogin CurrentUser
        {
            get
            {
                //UserLogin is a class from Core
                return (UserLogin)Session["User"];
            }

            set
            {
                Session["User"] = value;
            }
        }

        protected StringBuilder DisableButton(object sender, bool isImage, bool blockAll)
        {
            StringBuilder disableButton = new StringBuilder();
            disableButton.Append("if (typeof(Page_ClientValidate) == 'function') { ");
            disableButton.Append("if (Page_ClientValidate() == false) { return false; }} ");
            disableButton.Append("this.disabled = true;");

            if (isImage)
            {
                disableButton.Append("this.value = 'PROCESSING...';");
                disableButton.Append("document.getElementById('" + ((ImageButton)sender).ID + "').disabled = true;");
                disableButton.Append("document.getElementById('" + ((ImageButton)sender).ID + "').src = '../images/saveInactive.png';");
                disableButton.Append(this.Page.GetPostBackEventReference((ImageButton)sender));
            }

            else
            {
                disableButton.Append("document.getElementById('" + ((Button)sender).ID + "').disabled = true;");
                disableButton.Append("document.getElementById('" + ((Button)sender).ID + "').value = 'CARGANDO...';");
                disableButton.Append(this.Page.GetPostBackEventReference((Button)sender));
            }

            disableButton.Append(";");

            return disableButton;
        }
    }
}

我尝试摆脱那里的一些命令,但是每次我重新构建解决方案时,在从BasePage继承的任何Web窗体上仍然会出现错误。

是否存在影响网络表单的内容?

我过去曾遇到过这种错误。 不确定是否有帮助。 我们在基本页面的OnInit方法中有此方法:

if(Context != null && Context.Session != null && !Request.IsAuthenticated)
{
    Request.Redirect("~/Login.aspx");
}

似乎Context != null && Context.Session != null部分解决了该问题。 希望这可以帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM