2

アンドレイからの回答(彼の回答に対する彼のコメントで私のためにそれを解決した部分)

ボタンのオンクリックをしようとしていますが、取得しています

'ASP.views_home_index_aspx' には 'btnCreateOrder_Click' の定義が含まれておらず、タイプ 'ASP.views_home_index_aspx' の最初の引数を受け入れる拡張メソッド 'btnCreateOrder_Click' が見つかりませんでした (using ディレクティブまたはアセンブリ参照がありませんか?)

私のコード:

インデックス.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>

インデックス.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 に変更することが提案されましたが、MVC レイアウトを処理するために System.Web.Mvc.ViewPage が必要です。 ~/Views/Home/Index.aspx' は、ViewPage、ViewPage、ViewUserControl、または ViewUserControl から派生する必要があります。だから...ええ、コントローラーファイルのように関数を他の場所に配置することになっていない限り(私はVisual Studioを初めて使用します)、何をすべきかわからない:/

継承を変更すると修正できることがわかりましたが、適切なファイル ディレクティブに設定すると、それが壊れます (MyProject.Views.Home によって適切に行われます)。そこで何が起こっているのかわかりません。それ以外は、はい、それらは同じフォルダーにあり、はい、それらは添付されており、明らかにコードビハインドに設定されています。

ありがとうございます!

PSいくつかのブラケットが間違っている場合、それは私がフォーマットを台無しにしたからです。申し訳ありませんが、ここに投稿しないでください!

4

3 に答える 3

4

ページのInherits属性に間違った値があります。実際のコード ビハインド クラスはそこにあるはずです。

Inherits="MyProject.Views.Home.Index"
于 2013-05-08T14:51:07.203 に答える
0

CodeBehind ファイルで使用されているのと同じクラスを使用するように Index.aspx ページが接続されていないようです。

InheritsIndex.aspx の属性を からSystem.Web.Mvc.ViewPageに変更しようとしていますMyProject.Views.Home.Index

于 2013-05-08T14:51:53.483 に答える