Вход на сайт
Воспоминание asp net 12.10.2024
1597 просмотров
Перейти к просмотру всей ветки
в ответ uscheswoi_82 29.01.25 00:21
Всем привет! Продолжим. Короче в ASP NET WebForms не нужно писать так, как пишут в PHP:
Пример index.php:
<!DOCTYPE html> <html> <head> <title>Пример POST</title> </head> <body> <?php if(isset($_POST['firstname']) && isset($_POST['lastname'])): ?> <?php if($_POST['firstname'] != '' && $_POST['lastname'] != ''): ?> <h1><?=sprintf('Привет %s %s!', $_POST['firstname'], $_POST['lastname']); ?></h1> <?php endif ?> <h1>Привет незнакомец! Добро пожаловать к нам на сайт!</h1> <?php else: ?> <h1>Привет незнакомец! Добро пожаловать к нам на сайт!</h1> <?php endif ?> <form method="post" action="<?=htmlspecialchars($_SERVER["PHP_SELF"]); ?>"> <label for="firstname">Имя:</label><br> <input type="text" name="firstname" id="firstname"><br><br> <label for="lastname">Фамилия:</label><br> <input type="text" name="lastname" id="lastname"><br><br> <input type="submit" value="Погнали!"> </form> </body> </html>
В ASP NET WebForms нужно напрямую вызывать вот так:
Default.aspx:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" > <head runat="server"> <title>Пример POST</title> </head> <body> <form id="form1" runat="server"> <div> <h1><asp:Label ID="lbHello" runat="server" Text=""></asp:Label></h1> <asp:Label ID="lbFirstname" runat="server" Text="Имя:"></asp:Label><br /> <asp:TextBox ID="txtFirstname" runat="server"></asp:TextBox> <asp:RequiredFieldValidator ID="rfvFirstname" runat="server" ErrorMessage="*" ControlToValidate="txtFirstname" SetFocusOnError="True"> </asp:RequiredFieldValidator><br /><br /> <asp:Label ID="lbLastname" runat="server" Text="Фамилия:"></asp:Label><br /> <asp:TextBox ID="txtLastname" runat="server"></asp:TextBox> <asp:RequiredFieldValidator ID="rfvLastname" runat="server" ErrorMessage="*" ControlToValidate="txtLastname" SetFocusOnError="True"> </asp:RequiredFieldValidator><br /><br /> <asp:Button ID="btnGoGo" runat="server" Text="Погнали!" /> </div> </form> </body> </html>
Default.aspx.cs:
using System; using System.Data; using System.Configuration; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; public partial class _Default : System.Web.UI.Page { private String strHelloAnon = "Привет незнакомец! " + "Добро пожаловать к нам на сайт!"; private String strHelloName = "Привет {0} {1}!"; protected void Page_Load(object sender, EventArgs e) { if(!IsPostBack) lbHello.Text = strHelloAnon; else { if(txtFirstname.Text.Length > 0 && txtLastname.Text.Length > 0) { lbHello.Text = String.Format(strHelloName, txtFirstname.Text, txtLastname.Text); } else lbHello.Text = strHelloAnon; } } }
Вуаля! А вот так работает:
Спомощью IsPostBack проверяем первый раз запускается сайт, или нажали на кнопку Submit т.е. на кнопку "Погнали!". Если первый раз запускается сайт / страница, то IsPostBack = false, если не первый раз, т.е. уже нажали на кнопку Submit т.е. на кнопку "Погнали!" то IsPostBack = true.
Если я кому-то отвечаю, это не значит что я ему симпатизирую, каждый остаётся при своём мнение