为什么我的按钮没有调用我的函数?

时间:2019-11-07 01:17:01

标签: c# asp.net webforms

我正在尝试调用一个函数来更改<p>标签的内容,这似乎没有被调用,谢谢。

我检查了所有标记是否都带有runat="server",并确保函数名称正确。

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

namespace StepFollowingDemo
{
    public partial class Test1 : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            void Yeah()
            {
                string Some = Something.Value;
                this.Result.InnerHtml = Some;
            }
       }

    }
}

<%@ Page Title="" Language="C#" MasterPageFile="~/Site.Master" AutoEventWireup="true" CodeBehind="Test1.aspx.cs" Inherits="StepFollowingDemo.Test1" %>

    

测试用例


<label runat="server" for="Something">Type:</label>
<input runat="server" type="Text" class="from-control" id="Something"/>
<button runat="server" type="button" onclick="Yeah();" class="btn btn-success">Project your words</button>
<br /><br />

<label runat="server" for="Result">Output: </label>
<p runat="server" id="Result"></p>

1 个答案:

答案 0 :(得分:1)

我假设您要在服务器端运行该代码。我看到两个问题:

  1. 您将需要使用ASP Button control,例如<asp:Button>。请参阅该文档以获取有关如何使用它的详细信息。 <button>标记不是ASP控件,因此onclick正在客户端运行。它正在寻找javascript函数。

  2. 您在Page_Load内声明了该方法,并且该事件的签名错误。将其移至Page_Load类下:

protected void Page_Load(object sender, EventArgs e)
{
}

protected void Yeah(object sender, CommandEventArgs e)
{
    string Some = Something.Value;
    this.Result.InnerHtml = Some;
}

此外,Yeah不是常用的命名约定,但仍然可以使用。