【问题标题】:ASP.net Page_Load does not seems to be calledASP.net Page_Load 似乎没有被调用
【发布时间】:2017-11-17 22:16:53
【问题描述】:

我是 asp.net 的新手。我的 login.aspx 页面有这一行:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Users.aspx.cs" %>

我的 Users.aspx.cs 文件有以下代码行:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Diagnostics;


public partial class Users : System.Web.UI.Page
{

    protected void LoginButton_Click(object sender, EventArgs e)
    {

        if (Page.IsValid)
        {
            LoginButton.Text = "My form is valid!";
        }
    }   

}

在我正在使用的 login.aspx 页面上

RequiredFieldValidatorRegularExpressionValidator

验证电子邮件和密码字段。

现在,我必须确保验证已完成并做进一步的事情。但是,我的代码在这里并不友好;它没有调用这两个功能中的任何一个。事实上,我觉得它甚至没有进入 .cs 页面。我知道我在这里犯了一些愚蠢的错误。 谢谢!

附注验证工作正常,正确返回错误消息。

编辑:Login.aspx 页面如下所示:

<%@ Page Language="C#"  AutoEventWireup="true" CodeBehind="Users.aspx.cs" %>

                <div class="card text-white bg-info mb-3 toHide" id="loginBlock">
                    <div class="card-header"><b>Login To Pay Your Bills Online</b></div>
                    <div class="card-body">

                            <div class="form-group">
                                <label for="emailToLogin">Email address<b class="text-danger">*</b></label>
                                <asp:TextBox id="emailToLogin" ValidationGroup="Login" runat="server" placeholder="Enter email" CssClass="form-control"  />
                                <asp:RequiredFieldValidator id="emailToLogin1" EnableClientScript="false" ValidationGroup="Login" CssClass="small text-danger" Display="Dynamic" runat="server" controltovalidate="emailToLogin" errormessage="Please enter your email!" />
                            </div>
                            <div class="form-group">
                                <label for="passwordToLogin">Password<b class="text-danger">*</b></label>
                                <asp:TextBox id="passwordToLogin" ValidationGroup="Login" TextMode="password" runat="server" placeholder="Password" CssClass="form-control"  />
                                <asp:RequiredFieldValidator id="passwordToLogin1" EnableClientScript="false" ValidationGroup="Login" CssClass="small text-danger" Display="Dynamic" runat="server" controltovalidate="passwordToLogin" errormessage="Please enter your password!" />


                            </div>
                            <div>

                            </div>
                            <asp:Button id="LoginButton" ValidationGroup="Login" runat="server" OnClientClick="LoginButton_Click" Text="User Login" CssClass="btn btn-warning"  />  

                    </div>
                </div>

【问题讨论】:

  • 为什么你将Page_Load 声明为function 使其成为私有无效或受保护无效。还有很多关于asp.net基础的免费在线教程,我建议阅读它们并查看工作示例并了解Page Life-Cycle
  • 我只是添加 Page_Load 只是为了测试目的。稍后将删除。
  • 去 msdn 和谷歌如何声明 Page_Load 方法签名......这不是 Java 或 javascript。 Also read up about PostBacks 以及网页内的哪些对象/控件,触发回发
  • 我已经阅读了那里和其他教程。我什至尝试了类似问题的解决方案。什么都没解决,所以我费心在这里发帖。顺便说一句,感谢您的反对票。
  • 您是否阅读了任何有关基础知识的教程,或者您是否只是跳入并开始尝试您在教程中看到的内容而没有阅读/理解......?

标签: c# asp.net validation requiredfieldvalidator


【解决方案1】:

OnClick 将在服务器端运行,OnClientClick 将在控制权传递给服务器之前在客户端执行。 因此,您需要定义 OnClientClick 函数 ClientSide 或将 OnClientClick 更改为 OnClick。

https://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.button.onclientclick(VS.80).aspx

【讨论】:

    猜你喜欢
    • 2010-12-29
    • 2018-03-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-05
    • 2013-09-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多