C# 我刚收到一个.aspx.cs文件…如何运行它?

C# 我刚收到一个.aspx.cs文件…如何运行它?,c#,asp.net,.net,iis,C#,Asp.net,.net,Iis,我的任务是想出一种在.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 {

我的任务是想出一种在.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);
        }
   }
}
我也不知道如何运行它。我已经安装了具有ASP.NET功能的IIS 7(在Win7上)(从添加/删除程序)。我试着直接导航到这个文件(因为我已经习惯了PHP),结果出现了404错误。我添加了一个空的web.config文件,并编辑了aspx.cs文件和.config文件的权限,以包含IUSR,但仍然收到401个未经授权的错误

运行aspx.cs文件的最快方法是什么

编辑:只想补充一点,我没有访问VisualStudio的权限。我想让.NET进程获取文件并运行它,尽可能像PHP一样,因为我已经习惯了

您收到的是一个与ASP.Net网页关联的C#源文件。您将无法直接运行它,就好像它是某种可执行或解释脚本一样。发送给您的人假定您知道如何使用C#进行编码,并且您将引用此示例以了解如何使用SmtpClient类

==编辑===

由于这个特定的类包含一个代码隐藏,其中包含一个用于发送邮件按钮的事件处理程序,因此除了作为示例之外,它对您没有多大用处。但是,如果您希望基于此示例创建应用程序,则需要获得C#IDE(Visual Studio、SharpDevelop、Mono等),或者您可以直接从命令行使用C#编译器

编辑:只想补充一点,我没有访问VisualStudio的权限。我想让.NET进程获取文件并运行它,尽可能像PHP一样,因为我已经习惯了

那是不会发生的。您使用的不是解释性语言。代码需要编译,因为这是一个带有代码隐藏的标准web表单。您需要为web开发创建一个新的web表单项目,并将此代码移动到
Default.aspx


此时,您只需在IDE中点击F5,应用程序就会运行。

您收到的代码来自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”


无法运行aspx.cs文件。。。这是出于设计,因为必须编译扩展名为.cs的文件

您可以做的是创建一个.aspx文件并将该方法复制到其中,这样它就可以运行,而无需生成dll。。。编译仍然会发生,但它是以透明的方式发生的--您不必处理dll

类似(以下代码未经测试):


受保护的无效btSendMail\u单击(对象发件人,事件参数e)
{
MailMessage mailMsg=新邮件();
mailMsg.To.Add(“test@example.com");
mailMsg.From=新邮件地址(“否-reply@example.com");
//设置主题和主体
mailMsg.Subject=“[Subject]”;
mailMsg.Body=“[Body]”;
//设置邮件服务器和端口
SmtpClient SmtpClient=新的SmtpClient(“本地主机”,25);
SmtpClient.Send(mailMsg);
}
试验
试验


传统的方法是在visual studio中创建一个项目,并将此代码粘贴到codebehind中,然后运行itRead了解此处的代码behind模型:刚刚编辑,我没有访问visual studio或安装它的权限。有没有一种方法只运行codebehind文件,而不使用匹配的aspx html页面?比如javascript ajax调用?“有没有办法只运行代码隐藏文件,而不使用匹配的aspx html页面?比如javascript ajax调用?”-与大多数PHP不同,C#需要编译(这就是为什么C#通常要快得多)。我知道C#,我只是没有环境。似乎没有VisualStudio(甚至没有命令行?)就无法获得环境。也许我只是太习惯点灯了。我很抱歉假设你不知道C。虽然可以通过其他方式(LinqPad、CS脚本等)学习C语言,但绝大多数使用C语言编程的人都是通过使用Visual Studio或其他IDE(如SharpDevelop)获得知识的。您的问题假设您可以像运行可执行文件或脚本文件一样“运行”该文件,因此我的假设是您没有太多接触过任何.Net开发环境。但是,可以使用Microsoft的CSC.exe编译器或Mono从命令行编译类。不用担心。我对C#没有深入的了解,可能也不知道.NET开发的大部分基础知识。我接触的大部分内容都是Unity游戏开发,但是一些较低级别的东西让我比Unity提供的抽象级别更深。基本上,你收到了一个C#文件,需要与另一个HTML ish(.aspx)文件结合。C#文件需要像可执行程序一样编译,然后ASP.NET服务器在HTML ish文件需要时运行编译后的.dll。有没有一种方法可以在没有Visual Studio创建的Web表单的情况下通过ajax获得此表单功能?(当你点击HTML5画布上显示的图像时,我正在构建的邮件页面会被发送)你为什么回答了两次?通常的回答是用更完整的答案编辑您的原始帖子。我想做一些类似$(“#button1”)的事情。jquery中的click()会触发该函数吗?听起来
$.ajax({
  type: "POST",
  url: "YourASPXPage.aspx",
  data: "{}",
  contentType: "application/json; charset=utf-8",
  dataType: "json",
  success: function(msg) {
    // Do something 
  }
});
<!-- 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>