[英]I just received an .aspx.cs file…how do I run it?
我的任務是想出一種在.NET服務器上自動發送電子郵件的方法,並提供了一段可使用的代碼段:
using System;
using System.Net.Mail;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace SendMailSample
{
public partial class SendMailSample : System.Web.UI.Page
{
protected void btSendMail_Click(object sender, EventArgs e)
{
MailMessage mailMsg = new MailMessage();
mailMsg.To.Add("test@example.com");
mailMsg.From = new MailAddress("no-reply@example.com");
//Set subject and body
mailMsg.Subject = "[Subject]";
mailMsg.Body = "[Body]";
//Set mail server and port
SmtpClient smtpClient = new SmtpClient("localhost", 25);
SmtpClient.Send(mailMsg);
}
}
}
而且我不知道如何運行它。 我已經安裝了(在Win7上)具有ASP.NET功能的IIS 7(來自“添加/刪除程序”)。 我嘗試直接導航到該文件(因為我習慣使用PHP),但出現404錯誤。 我添加了一個空的web.config文件,並對aspx.cs文件和.config文件的權限進行了編輯,以包括IUSR,但仍然出現401未經授權的錯誤。
運行aspx.cs文件的最快方法是什么?
編輯:只是想補充一點,我沒有訪問Visual Studio的權限。 我只想讓.NET進程獲取文件並像運行PHP一樣運行它,因為這是我習慣的。
發送給您的是與ASP.Net網頁關聯的C#源文件。 您將無法直接運行它,就好像它是某種可執行文件或解釋性腳本一樣。 將其發送給您的人假定您知道如何使用C#進行編碼,並且您將參考此作為如何使用SmtpClient類的示例。
===編輯===
因為這個特定的類包含一個帶有用於發送郵件按鈕的事件處理程序的代碼,所以除了作為示例之外,它對您沒有什么用處。 但是,如果您想基於此示例創建應用程序,則需要獲取C#IDE(Visual Studio,SharpDevelop,Mono等),也可以直接從命令行使用C#編譯器。
編輯:只是想補充一點,我沒有訪問Visual Studio的權限。 我只想讓.NET進程獲取文件並像運行PHP一樣運行它,因為這是我習慣的。
那不會發生。 您不使用解釋語言。 該代碼需要編譯,因為這是帶有代碼的標准Web表單。 您需要下載用於Web開發的Visual Studio的快速版本 ,創建一個新的Web Forms項目,然后將此代碼移到Default.aspx
。
此時,您只需在IDE中按F5鍵 ,應用程序便會運行。
您無法運行aspx.cs文件...這是設計使然,因為必須編譯擴展名為.cs的文件...
您可以做的是創建一個.aspx文件並將其復制到該方法,以便無需生成dll即可運行...編譯仍會發生,但是它以透明的方式發生-您不會必須處理dll ...
諸如此類( 未測試以下代碼 ):
<!-- directives -->
<% @Page Language="C#" %>
<%@ Import Namespace="System.Net.Mail" %>
<!-- code section -->
<script runat="server">
protected void btSendMail_Click(object sender, EventArgs e)
{
MailMessage mailMsg = new MailMessage();
mailMsg.To.Add("test@example.com");
mailMsg.From = new MailAddress("no-reply@example.com");
//Set subject and body
mailMsg.Subject = "[Subject]";
mailMsg.Body = "[Body]";
//Set mail server and port
SmtpClient smtpClient = new SmtpClient("localhost", 25);
SmtpClient.Send(mailMsg);
}
</script>
<!-- Layout -->
<html>
<head> <title> Test </title> </head>
<body>
<h3> Test </h3>
<form runat="server">
<input runat="server" id="button1" type="submit"
value="Enter..." OnServerClick="btSendMail_Click"/>
<hr />
</form>
</body>
</html>
給出的代碼來自ASPX頁面的代碼。 更具體地說,它是按下按鈕時觸發的方法。 我將1)在Visual Studio中創建一個新的Web窗體。 2)在該頁面上創建一個按鈕。 3)雙擊新按鈕進入代碼隱藏。 4)即使是新按鈕,也將您獲得的代碼粘貼到新的onclick中。
將此代碼粘貼到新的onclick方法中:
MailMessage mailMsg = new MailMessage();
mailMsg.To.Add("test@example.com");
mailMsg.From = new MailAddress("no-reply@example.com");
//Set subject and body
mailMsg.Subject = "[Subject]";
mailMsg.Body = "[Body]";
//Set mail server and port
SmtpClient smtpClient = new SmtpClient("localhost", 25);
SmtpClient.Send(mailMsg);
編輯:
您可以使用AJAX,但是您仍然需要后面缺少代碼的前半部分。 您可以創建一個html表單頁面,並在下面的按鈕onclick事件中使用JQuery。 就像我說的,請確保構造aspx頁面的前端並將其命名為:“ YourASPXPage.aspx”
$.ajax({
type: "POST",
url: "YourASPXPage.aspx",
data: "{}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function(msg) {
// Do something
}
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.