aspx文件不包含函数的定义,连接的aspx.cs文件中的定义

时间:2013-05-08 14:46:59

标签: c# asp.net onclick code-behind

Andrei给出的答案(在他对答案的评论中为我解决的部分)

尝试点击按钮,但我正在

'ASP.views_home_index_aspx'不包含'btnCreateOrder_Click'的定义,并且没有扩展方法'btnCreateOrder_Click'可以找到类型'ASP.views_home_index_aspx'的第一个参数(你是否缺少using指令或汇编引用? )

我的代码:

的Index.aspx:

<%@ Page Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage" AutoEventWireup="true" CodeBehind="Index.aspx.cs" %>
*THERE IS A COMMENT ABOUT THE INHERIT NEAR THE END OF MY POST*
<asp:Content ID="Content1" ContentPlaceHolderID="TitleContent" runat="server">
    Home Page
</asp:Content>

<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
    <h2><%: ViewData["Message"] %></h2>
    <table id="productTable">

    </table>
    <asp:Label ID="testMessage" runat="server" Text="fail"></asp:Label>
    <p>
        To learn more about ASP.NET MVC visit <a href="http://asp.net/mvc" title="ASP.NET MVC Website">http://asp.net/mvc</a>.
    </p>

    <asp:Button ID="btnCreateOrder" runat="server" Text="Create Order" onclick="btnCreateOrder_Click" />

</asp:Content>

Index.aspx.cs:

using System;
using System.Web;
using System.Web.UI;
using System.Collections.Generic;
using System.Web.UI.WebControls;
using System.Xml;
using System.Linq;

namespace MyProject.Views.Home
{
    public partial class Index : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
    {


        System.Diagnostics.Debug.Write("Testing");
        XmlTextReader reader = new XmlTextReader("data/products.xml");

        while (reader.Read())
        {

            System.Diagnostics.Debug.Write(reader.Name);

        }


        int numRows = 21;
        int numCells = 4;
        for (int rowNum = 0; rowNum < numRows; rowNum++)
        {
            TableCell cel = new TableCell();

        }
    }

    public void btnCreateOrder_Click(object sender, EventArgs e)
    {
       System.Diagnostics.Debug.Write("Testing");
    }

}

在半相关的说明中,我也无法让Page_Load运行..好吧,页面加载。 (因此调试“测试”)所以,如果你知道那里出了什么问题那就太棒了:)

继承评论 有人建议我将继承更改为MyProject.Views.Home.Index但是我需要System.Web.Mvc.ViewPage来处理MVC布局,没有它我得到:System.InvalidOperationException:'〜/ Views / Home / Index.aspx'必须从ViewPage,ViewPage,ViewUserControl或ViewUserControl派生。 所以...是的,除非我应该将我的函数放在控制器文件中的其他地方(我是Visual Studio的新手),不知道该怎么做:/

我已经看到更改继承可能会修复它但是如果我将它设置为正确的文件指令它会破坏它(正确的将由MyProject.Views.Home)它返回“无法加载类型”MyProject.Views.Home ”“。所以不确定那里发生了什么。除此之外,是的,他们在同一个文件夹中,是的,他们是附加的,显然它被设置为代码隐藏。

先谢谢!

PS,如果有些括号错误,只是因为我搞砸了格式化,不要在这里发帖,不要抱歉!

3 个答案:

答案 0 :(得分:4)

页面的Inherits属性中包含错误的值。实际的代码隐藏类应该在那里:

Inherits="MyProject.Views.Home.Index"

答案 1 :(得分:0)

看起来您的Index.aspx页面没有连接到使用CodeBehind文件中使用的相同类。

尝试将Index.aspx中的Inherits属性从System.Web.Mvc.ViewPage更改为MyProject.Views.Home.Index

答案 2 :(得分:0)

当您的网页{@ 1}}

时,您的网页正在继承System.Web.Mvc.ViewPage

将.aspx页面上的整个顶行更改为

MyProject.Views.Home.Index