0

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

我注意到显示此错误的网络表单是从 BasePage 而不是 System.Web.UI.Page 继承的网络表单

例子。

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 继承的任何 webform 上遇到错误。

有什么东西会影响网络表单吗?

4

1 回答 1

1

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

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

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

于 2013-06-18T00:42:24.767 回答