无法隐式转换类型'字符串' to' System.Web.UI.WebControls.TextBox'错误

时间:2015-09-21 23:39:39

标签: c# asp.net

我收到此错误,但我无法告诉它可能来自哪里。错误页面引用的行是:

  

@ Page Title =""语言=" C#"的MasterPageFile ="〜/ CV.Master" AutoEventWireup ="真"代码隐藏=" AddPost.aspx.cs"继承=" CV_Blog_WDW.AddPost"

但是,我无法看到该行如何导致该错误?除非有我失踪的东西?

我的.aspx代码是:

<%@ Page Title="" Language="C#" MasterPageFile="~/CV.Master" AutoEventWireup="true" CodeBehind="AddPost.aspx.cs" Inherits="CV_Blog_WDW.AddPost" %>
    <asp:Content ID="Content1"
                 ContentPlaceHolderID="ContentPlaceHolder1"
                 runat="server">
        <!-- =========
        Special Nav for BLog page
        ===================================-->
        <nav class="nav-blog">
            <a href="default.aspx"
               class="btn btn-left"
               data-toggle="tooltip"
               data-placement="left"
               title=""
               data-original-title="Home">
                <i class="fa fa-home"></i>
            </a>
            <a href="#"
               class="btn btn-big-blog">Blog</a>
            <a href="#"
               class="btn btn-right"
               data-toggle="tooltip"
               data-placement="right"
               title=""
               data-original-title="Reload Page">
                <i class="fa fa-refresh"></i>
            </a>
        </nav>
        <!-- =========
        Start Show Yor Name Section
        ===================================-->
        </div>
        </header>
        <!-- =========
    End portrait section
    ===================================-->
        <!-- =========
    Start Content section
    ===================================-->
        <section class="content open"
                 id="main-content">
            <div class="body-content"
                 id="blog">
                <div class="row">
                    <div class="col-md-10 col-md-offset-1">
                        <div class="blog-posts">
                            <div class="blog-post">
                                <h3 class="title with-icon">
                                    <span class="fa  fa-comment-o icn-title"></span> Add A Post
                                </h3>
                                <div class="box-block">
                                    <div class="row">
                                        <div class="col-md-6">
                                            <div class="form-group">
                                                <label for="Title">Title</label>
                                                <asp:TextBox ID="Title"
                                                             runat="server"
                                                             CssClass="form-control"></asp:TextBox>
                                            </div>
                                            <div class="form-group">
                                                <label for="FeaturedImage">Featured Image</label>
                                                <asp:FileUpload ID="FeaturedImage"
                                                                runat="server"
                                                                CssClass="form-control" />
                                            </div>
                                        </div>
                                    </div>
                                    <div class="form-group">
                                        <label for="MesageForm">Body</label>
                                        <asp:TextBox ID="Body"
                                                     TextMode="MultiLine"
                                                     Rows="8"
                                                     runat="server"
                                                     CssClass="form-control"></asp:TextBox>
                                    </div>
                                    <asp:Button id="btnAdd"
                                                runat="server"
                                                CssClass="btn btn-flat btn-lg"
                                                Text="Add Post"
                                                OnClick="btnAdd_Click" />
                                </div>
                            </div>
                        </div>
                    </div>
                </div>
            </div>
    </asp:Content>

我的代码背后是:

public partial class AddPost : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {

    }

    protected void btnAdd_Click(object sender, EventArgs e)
    {
        if(FeaturedImage.HasFile)
        {
            try
            {
                string filename = Path.GetFileName(FeaturedImage.FileName);
                FeaturedImage.SaveAs(Server.MapPath("~/assets/images/blog/") + filename);
            }
            catch(Exception ex)
            {
                string error = ex.Message;
            }
        }

        try
        {
            string connection = WebConfigurationManager.ConnectionStrings["ConnectionString"].ToString();

            SqlConnection con = new SqlConnection(connection);

            SqlCommand cmd = new SqlCommand("AddPost", con);
            cmd.CommandType = CommandType.StoredProcedure;
            cmd.Parameters.AddWithValue("@Title", Title.Text);
            cmd.Parameters.AddWithValue("@Date", DateTime.Now);
            cmd.Parameters.AddWithValue("@FeatureImage", Path.GetFileName(FeaturedImage.FileName));
            cmd.Parameters.AddWithValue("@PostedBy", 1);
            cmd.Parameters.AddWithValue("@Body", Body.Text);

            con.Open();
            cmd.ExecuteNonQuery();
        }
        catch(Exception ex)
        {

        }
    }
}

我已经谷歌了解错误,但似乎没有任何与我的代码相关的内容?真的难倒这个,没能尝试任何修复,说实话不知道从哪里开始。据我所知,我没有进行转换,但也许还有一个我不知道的事情?

1 个答案:

答案 0 :(得分:5)

错误来自将字符串分配给TextBox变量。通常的原因是忘记Text属性,并使用类似:

MyTextbox = "Some string";

intead of:

MyTextbox.Text = "Some string";

但是,由于您的方法中没有此类代码,并且因为错误消息指向aspx页面,因此错误位于从标记生成的代码中。

您有一个名为Title的文本框。 Page class中已存在该名称的字符串属性,当生成的代码尝试设置字符串属性时,分配将使用TextBox字段,因为它会影响字符串属性。

Title文本框重命名为尚未使用的内容。