1

これはおそらく、ここで尋ねられた中で最も単純な質問です。Visual Studio 2010 を使用して自分で asp.net を学習しています。しかし、チュートリアルの最初の例を通過できず、その理由がわかりません。コードビハインドで Page_Load イベントを発生させることができません。非常に単純な例は次のとおりです。

default.aspx:

<@ Page Title="Home Page" Language="VB" MasterPageFile="~/Site.Master"                AutoEventWireup="false" CodeFile="Default.aspx.vb" Inherits="_Default" %>


<asp:Content ID="BodyContent" runat="server" ContentPlaceHolderID="MainContent">
<asp:Label ID="MyLabel" runat="server"></asp:Label>
</asp:Content>

default.aspx.vb

Partial Class _Default
Inherits System.Web.UI.Page

Protected Sub Page_Load(ByVal sender as Object, by Val e As System.Eventargs)
    MyLabel.Text = "Hello, World!"
End Sub

End Class

<% MyLabel.Text = "Hello, World!" を追加すると、%> default.aspx に移動すると、ラベルが設定されます。コードビハインドの Page_Load イベント内で何も (response.writes など) を動作させることができません。

このようなことでお手数をおかけして申し訳ありませんが、この単純な問題を解決するまで先に進むことはできません。そして、私は困惑しています。

4

3 に答える 3

6

コードビハインドを使用するように指示しなかったため、機能していません。aspx ファイルの最初の行は次のようになります。

<%@ Page Title="Home Page" Language="vb" MasterPageFile="~/Site.Master"  AutoEventWireup="true" CodeBehind="Default.aspx.vb" Inherits="YourAppName._Default" %>

MSDN ASP.NET Web ページ コード モデル

また、他の人が言及したように、必要になるAutoEventWireup="true"か、に追加Handles Me.LoadしますPage_Load

また、学習中の場合は... ASP.NET MVC は、Web フォームを使用するための優れた方法です。

于 2013-09-24T19:56:58.387 に答える
3
Protected Sub Page_Load(ByVal sender as Object, by Val e As System.Eventargs) Handles Me.Load

Page.Load イベントが発生したときにこのメソッドが実行されるように、「Handles Me.Load」を追加する必要があります。

于 2013-09-24T19:53:42.903 に答える
2

AutoEventWireup プロパティが原因である可能性が高いと思います。.net フォーラムの説明を参照してください。

asp.net の自動イベント ワイヤーアップ フォーラムへの投稿

TLDR; 「true」に設定して、問題が解決するかどうかを確認してください。もう 1 つ、.NET MVC を調べてみてください。Web フォームを独習することは、レガシー アプリケーションをサポートするのに最適ですが、新製品のトレンドは MVC フレームワークになる傾向があるためです。

于 2013-09-24T19:54:30.920 に答える