簡體   English   中英

使用C#進行ASP.NET Web開發。 無法將類型'object'隱式轉換為'bool'。 存在顯式轉換(您是否缺少演員表?)”

[英]ASP.NET web development with C#. Cannot implicitly convert type 'object' to 'bool'. An explicit conversion exists (are you missing a cast?)"

我是ASP.NET和C#的新手。 我正在嘗試通過以下步驟創建用戶注冊頁面

1)我向會話發送一個字符串,然后重定向到登錄頁面:

protected void register_Click(object sender, EventArgs e)
{
    string fn = fullname.Text;
    string em = email.Text;
    string pass1 = password.Text;
    string pass2 = password2.Text;

    if (pass1 == pass2)
    {
       // con = new SqlConnection("Data Source=localhost\\sqlexpress;Initial Catalog=ewadb;Integrated Security=SSPI");
     //   data = new SqlDataAdapter("INSERT INTO user_login (fullname, email, password, registered_date) VALUES ('" + fn + "','" + em + "','" + pass1 + "','')", con);
    //   dset = new DataSet();
     //  data.Fill(dset);

        Session["publicmessage"] = "Success";

        Response.Redirect("login.aspx");
    }
    else { 
    }
}

2)然后我嘗試從會話中捕獲值到login.aspx頁面

        <% if (Session["publicmessage"] = "Success")
           { %>
        <div class="row-fluid">
                <div class="span6">
                    <div class="alert alert-success">
                        <button type="button" class="close" data-dismiss="alert">&times;</button>Registation Success. Please Login!</div>
                </div>
             </div>
            <% } else {}%>

我說錯了

無法將類型'object'隱式轉換為'bool'。 存在顯式轉換(您是否缺少演員表?)”。

有人可以幫我解決此錯誤嗎?

在會話中保存任何內容時,它都會另存為對象。 在這里,您需要將其轉換為字符串。 更改此:

 <% if (Session["publicmessage"] = "Success")

對此

  <% if (Session["publicmessage"].ToString() == "Success")

甚至更好:

  <% if (Session["publicmessage"] != null && Session["publicmessage"].ToString() == "Success")

提供的所有答案都是正確的。 但是,當您嘗試讀取會話變量時,出於多種原因,尤其是因為會話可能過期,您應該始終將其評估為空值。 所以不要這樣做...

if (Session["publicmessage"] = "Success")

做這個...

if (Session["publicmessage"] != null && Session["publicmessage"].ToString() == "Success")

或這個...

if (Convert.ToString(Session["publicmessage"]) == "Success")

現在,從設計角度來說...您無需使用會話來存儲身份驗證詳細信息。 您應該始終嘗試避免使用會話。 在這種情況下,您應該改用cookie。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM