2010-08-05 2 views
2

Пытаясь создать простую форму:ASP.net C# вопрос о формах

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="register.aspx.cs" Inherits="AlphaPack._Default" 
    MasterPageFile="MasterPages/Main.master" 
    title="Hi there!" 
%> 

<script runat="server"> 
    public void regSubmit() 
    { 
     statusLabel.Text = "Submitted!"; 
    } 
</script> 

<asp:content id="Content1" contentplaceholderid="mainContent" runat="server"> 


<form id="registerForm" runat="server"> 

<asp:Label runat="server" id="statusLabel"></asp:Label> 
<asp:Button id="id" text="Register" OnClick="regSubmit" runat="server" /> 

</form> 

</asp:content> 

надеюсь, что это очевидно, что я пытаюсь сделать, кто-то нажимает на кнопку, и он отправляет форму и изменяет текст надписи.

Compiler Error Message: CS0123: No overload for 'regSubmit' matches delegate 'System.EventHandler' 

Я знаю, что делаю что-то принципиально неправильно здесь, я новичок в .net, переходящем от классического ASP.

+1

В дополнение к ответам, я бы рекомендовал использовать файл codebehind и позволить IDE заполнить часть этого для вас - останавливает вас от падений небольших проблем, подобных этому. – Paddy

ответ

6

Попробуйте это:

protected void regSubmit(object sender, EventArgs e) 
+0

Супер спасибо! Я просмотрю эти параметры –

+2

@Tom: для записи все события в .NET имеют два аргумента: «Объект» (событие которого оно есть) и экземпляр «EventArgs» (или один из его подклассов). – Powerlord

4

Потому что это обработчик события, ваш метод нажмите должен иметь правильную подпись

public void regSubmit(object sender, EventArgs e) 

Джон Скит написал article on understanding Delegates and Events. Переходя к тому, что может помочь вам в этом вопросе в будущем.