私は2 aspx.csページがあります。 最初のページはログイン用です。ログインした後、ユーザーがログインしたという警告として電子メールを送信します。 ログイン後、2ページ目に移動します。 2番目のページに別のボタンを作成したいときは、もう一度送信します(1ページの同じ送信方法)。 ページ2の "send"メソッドを呼び出すことができますか、または各ページにメソッド全体を書き込む必要がありますか?aspx.csから同じプロジェクトの別のaspx.csにメソッドを呼び出す方法は?
これは、背後のページ1コード:
public partial class UserLogin : System.Web.UI.Page
{
private string _employee;
private string _userName;
private string _loginDatetime;
protected void Page_Load(object sender, EventArgs e)
{
}
protected void LoginBtn_Click(object sender, EventArgs e)
{
_employee = employeeBox.Text;
_userName = userBox.Text;
_loginDatetime = DateTime.Now.ToString();
SendMail("[email protected]", "[email protected]", "[email protected]", "Login Alert",
"Hello " + _employee + ",<Br>User \"" + _userName + "\" just log to the website on the following date: " + DateTime.Now);
Response.Redirect("http://localhost:21361/UserDeposit.aspx?_employee=" + employeeBox.Text + "&_userName=" + userBox.Text + "&_loginDatetime=" + _loginDatetime);
}
protected string SendMail(string toList, string from, string ccList, string subject, string body)
{
MailMessage message = new MailMessage();
SmtpClient smtpClient = new SmtpClient();
string msg;
try
{
MailAddress fromAddress = new MailAddress(from);
message.From = fromAddress;
message.To.Add(toList);
if (!string.IsNullOrEmpty(ccList))
message.CC.Add(ccList);
message.Subject = subject;
message.IsBodyHtml = true;
message.Body = body;
smtpClient.Host = "smtp.gmail.com";
smtpClient.Port = 587;
smtpClient.EnableSsl = true;
smtpClient.UseDefaultCredentials = true;
smtpClient.Credentials = new NetworkCredential("[email protected]", "password");
smtpClient.Send(message);
msg = "Successful";
Response.Write("<script>alert('" + msg + "')</script>");
}
catch (Exception ex)
{
msg = ex.Message;
Response.Write("<script>alert('" + msg + "')</script>");
}
return msg;
}
}
の背後にある。これは、2ページのコード:任意のページでsendメソッドを持っていますが、それを入れていない:
public partial class UserDeposit : System.Web.UI.Page
{
string _employeeName;
string _userName;
string _loginTime;
DateTime time;
protected void Page_Load(object sender, EventArgs e)
{
_employeeName = Request.QueryString["_employee"];
EmployeeName.Text = _employeeName;
_userName = Request.QueryString["_userName"];
UserName.Text = _userName;
_loginTime = Request.QueryString["_loginDatetime"];
time = DateTime.Parse(_loginTime);
}
protected void Button1_Click(object sender, EventArgs e)
{
//call here the "send mail" method??
}
}
:
今、あなたはちょうどこのように、前にクラス名を追加し、どこからでも呼び出すことができますがC#ファイルでは、メソッドがあるクラスのインスタンスを作成することができ、メソッドは一度しか書き込まれないので、いつでも呼び出すことができます。しかし、私はaspx.csでこれを行う方法を知らない – nirh1989
あなたはaspx.cs.ではありませんプロジェクトにクラスファイルを追加します。申し訳ありませんが、asp.NETの使い方を学んだことがありますか? App_Codeフォルダは何だと思いますか? http://stackoverflow.com/questions/7480437/asp-net-app-data-app-code-folders – TomTom
私はasp.netを初めて使用しています...第2ページは最初のページを認識しません。欠落しているようですページ間の参照、私は1ページから別のメソッドを呼び出すことはできません – nirh1989