.NET / C # Issue - Назначение обработчика событий мыши для гиперссылки - PullRequest
0 голосов
/ 06 декабря 2011

В моем default.aspx у меня есть следующее:

<%@ Page Title="Home Page" Language="C#" MasterPageFile="~/Site.master" AutoEventWireup="true"
    CodeBehind="Default.aspx.cs" Inherits="WebApplication1._Default" %>

<asp:Content ID="HeaderContent" runat="server" ContentPlaceHolderID="HeadContent">
</asp:Content>
<asp:Content ID="BodyContent" runat="server" ContentPlaceHolderID="MainContent">
<h1>Database Exercise - Branches/Staff</h1>
<p>Type a message to store</p>
<input type="text" name="texth" />
<a id ="submit" onclick="Submit_Message()">Submit</a>
</asp:Content>

В моем Default.aspx.cs у меня есть

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

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

        }

        //test event handler - submit message
        protected void Submit_Message(object sender, EventArgs e)
        {
            Console.Write("Hello");
        }
    }
}

При запуске приложения я получаю:

Ошибка времени выполнения Microsoft JScript: «Submit_Message» не определено

Все, что я хочу, это чтобы обработчик события Submit_Message () срабатывал при нажатии ссылки .... Что я делаю не так?

Ответы [ 3 ]

2 голосов
/ 06 декабря 2011

Вы пытаетесь вызвать метод на стороне сервера, вызывая функцию Javascript, поэтому вы смешиваете сторону клиента и сторону сервера.

Вы можете использовать ASP: LinkButton в представлении и поместить туда событие onclick:

<asp:LinkButton ID="LinkButton" runat="server" onclick="Submit_Message">Link</asp:LinkButton>
2 голосов
/ 06 декабря 2011

<a id ="submit" onclick="Submit_Message()">Submit</a> полностью обрабатывается на стороне клиента, никогда не обрабатывается сервером, поэтому onclick ссылается на метод JavaScript с именем Submit_Message.

Если вам нужна ссылка, которая запускает событие на стороне сервера, используйте <asp:LinkButton .../> вместо:

<asp:LinkButton id="submit" runat="server" OnClick="Submit_Message" Text="Submit" />
0 голосов
/ 06 декабря 2011

Вы не можете вызвать обработчик событий на стороне сервера из события onclick на стороне клиента.

Вам необходимо использовать элемент управления ASP, например LinkButton, который будет отображать стандартный элемент привязки (<a>) дляклиент с атрибутом runat=server и связывает его OnClick событие на стороне сервера с кодом, стоящим за обработчиком, следующим образом:

<asp:LinkButton runat="server" Text="Submit" OnClick="Submit_Message" />
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...