0

当我尝试将 asp:Literal 的名称作为参数发送到另一个类中的函数时,我试图弄清楚为什么会出现此错误。

证书.aspx.cs:

login.DisplayLoginError(Company.Web.STSLogin.Common.Utils.LocalizeUtils.GetTranslation("login.unsuccessful", "Host", false), "attention", litMessageCertificate);

登录.aspx:

 <asp:Literal ID="litMessageCertificate" runat="server"></asp:Literal>

登录.aspx.cs:

    public void DisplayLoginError(string text, string messageType, Literal literal)
    {
        ClearTextBoxes(); //attention
        literal.Text = string.Format("<div id=\"customErrorPanel\" style=\"display : none\" class=\"message {1}\" >{0}</div>", text, messageType);
        string javaScriptFunction = "$(function () { $('#customErrorPanel').slideDown('fast'); });";
        ClientScript.RegisterStartupScript(this.GetType(), "errorScript", javaScriptFunction, true);
    }

我收到错误消息:当前上下文中不存在名称“litMessageCertificate”。

非常感谢任何帮助

4

2 回答 2

3

您是不是缺少 Certificate.aspx 中的文字控件(ID="litMessageCertificate")?您正在尝试在那里引用不存在的对象。

这两个页面彼此不认识,因此您不能在 Login.aspx.cs 中使用 Certificate.aspx 中的元素,反之亦然。

于 2013-04-08T16:27:25.633 回答
1

看起来您正试图在为仅显示证书错误消息而创建的文字控件中显示特定的证书错误消息。如果无法在 Login.aspx 中制作通用错误消息文字,则可以将错误类型作为字符串(甚至是整数)传递给 Login.aspx,而不是尝试在不同的 aspx 页面之间传递控件。就像是...

(证书.aspx.cs)

login.DisplayLoginError(Company.Web.STSLogin.Common.Utils.LocalizeUtils.GetTranslation("login.unsuccessful", "Host", false), "attention", "ERROR_CERTIFICATE");

(登录.aspx.cs)

public void DisplayLoginError(string text, string messageType, string errorType)
{
    ClearTextBoxes(); //attention

    if(errorType == "ERROR_CERTIFICATE"){
       litMessageCertificate.Text = string.Format("<div id=\"customErrorPanel\"style=\"display : none\" class=\"message {1}\" >{0}</div>", text, messageType);
      string javaScriptFunction = "$(function () {$('#customErrorPanel').slideDown('fast'); });";
       ClientScript.RegisterStartupScript(this.GetType(), "errorScript",JavaScriptFunction, true);
    }
    else{//display a different error message in a different literal control}

}
于 2013-04-08T16:43:46.863 回答