如何从 VS code 运行 ASPX 文件?

How do I run an ASPX file from VS code?

提问人:Arjun Malhotra 提问时间:10/26/2023 最后编辑:derloopkatArjun Malhotra 更新时间:10/28/2023 访问量:97

问:

我正在努力学习 asp.net 但我做不到,因为我无法实际做到这一点。我被困在第一步,即打开 aspx 文件。我有这个代码。

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="compare_validator_demo.aspx.cs"   
Inherits="asp.netexample.compare_validator_demo" %>  
<!DOCTYPE html>  
<html xmlns="http://www.w3.org/1999/xhtml">  
<head runat="server">  
<title></title>  
<style type="text/css">  
.auto-style1 {  
width: 100%;  
        }  
.auto-style2 {  
height: 26px;  
        }  
.auto-style3 {  
height: 26px;  
width: 93px;  
        }  
.auto-style4 {  
width: 93px;  
        }  
</style>  
</head>  
<body>  
<form id="form1" runat="server">  
<table class="auto-style1">  
<tr>  
<td class="auto-style3">  
                        First value</td>  
<td class="auto-style2">  
<asp:TextBox ID="firstval" runat="server" required="true"></asp:TextBox>  
</td>  
</tr>  
<tr>  
<td class="auto-style4">  
      Second value</td>  
<td>  
<asp:TextBox ID="secondval" runat="server"></asp:TextBox>  
       It should be greater than first value</td>  
</tr>  
<tr>  
<td class="auto-style4"></td>  
<td>  
<asp:Button ID="Button1" runat="server" Text="save"/>  
</td>  
</tr>  
</table>  
<asp:CompareValidator ID="CompareValidator1" runat="server" ControlToCompare="secondval"   
ControlToValidate="firstval" Display="Dynamic" ErrorMessage="Enter valid value" ForeColor="Red"   
Operator="LessThan" Type="Integer"></asp:CompareValidator>  
</form>  
</body>  
</html>  

我想看到它像 html 文件一样实时。我试过用扩展名保存它compare_validator.aspx 我们单击 .html 文件以在浏览器上查看呈现的 html 页面。asp 文件在 vs 代码中的工作方式是否相同,或者我们必须添加一些配置?我尝试从查找器打开它,但它将我带到了 vs 代码。任何类型的建议都会有所帮助。

asp.net visual-studio-code IIS

评论

0赞 Joel Coehoorn 10/28/2023
ASP.Net 使用 aspx 文件扩展名,而不是 ASP。asp 扩展仅适用于经典 (pre-.Net) asp,这里的代码示例绝对是 .Net。此外,此代码示例使用的是 Web 窗体,虽然我个人对旧的 Web 窗体技术有一定的欣赏,但我不会建议将其作为刚起步的人的最佳选择。

答:

0赞 Albert D. Kallal 10/28/2023 #1

实际上,您不能使用 Visual Studio,甚至不能使用 Visual 代码来运行 .aspx 文件。

Visual Studio 的工作方式是,在安装 Visual Studio 时,还会安装 IIS Web 服务器的整个副本。(已安装 IIS Express)。

那么,当我在 Visual Studio 中时,我按 f5 运行?虽然 Visual Studio 将生成和编译 aspx 页面的代码?Visual Studio(或可视代码)不运行 aspx 页。

Web 服务器加载并运行页面。

这意味着对于 aspx 页面,您需要一个有效的工作和已安装的 Web 服务器来查看此类页面。Visual Studio 或可视代码不会运行该页面。

如前所述,Visual Studio 当然会为你设置和运行 IIS,但请记住上述重要区别。Visual Studio 可以在开发过程中“启动”aspx 页面,但要实现这个神奇的技巧,VS 实际上会启动 Web 服务器 (IIS express) 的副本,然后让 Web 服务器使用、加载和解释 aspx 页面。因此,再一次,Visual Studio(或可视代码)不会、不能、也不会运行该 aspx 页面。您需要一个正在运行且已安装的 Web 服务器,该服务器可以使用 + 运行 + 启动该 aspx 页面。

因此,当我在 Visual Studio 中按 f5 运行该页面时,它看起来像这样说:

enter image description here

因此,在大多数情况下,您不能运行 aspx 页面。事实上,在大多数情况下,aspx 页面必须是工作 Web 项目的一部分。由于此类网页需要 Web 服务器和正确的配置,因此在大多数情况下,甚至无法实现让 IIS 或 Visual Studio(或 Visual Code)运行/启动单个 aspx 页面的概念。换句话说,您首先创建一个工作 Web 项目,然后将该页面添加到工作网站。然后,您可以如上所述屏幕视频显示VS启动页面。

因此,在大多数情况下,在尝试运行/使用/使用/玩转/设计 aspx 页面之前,需要一个具有配置的网站。因此,该页面只是运行的概念实际上并不存在。您需要先设置一个工作网站项目,然后才能使用和运行此类 aspx 页面。它们不能单独运行,事实上,在大多数情况下,甚至 Visual Studio 也无法启动页面并将其移交给 IIS。

但是,不要误会,Visual Studio 或 Visual 代码不会也不能也不会为您运行 .aspx 页面。您需要设置并运行一个有效的网站服务器,才能在计算机上查看此类页面。

那么,要尝试上面的网页吗?好吧,到目前为止您发布的内容缺少隐藏文件的代码,这将是必需的。

因此,我可以在这里“尝试”的是在我现有的一个工作项目中(请注意,这里非常小心 - 我说过我将使用现有项目,因为aspx页面不能也不存在,也不能独立运行)。

因此,让我们创建一个新的空白网页。

我明白了:

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

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
        <div>



        </div>
    </form>
</body>
</html>

所以,我能做的就是把你的“东西”从页面的形式部分拿出来,然后把它放进去。

请注意,我不会(也不能)弄乱由desinger创建的页面的所有部分。因此,在页面的最顶部,我使用了我的设置,并让 Visual Studio 为我创建页面的各个部分。因此,到目前为止,我只能使用您的共享信息转储表单标签之间的内容。

所以,我现在有这个:

enter image description here

当然,如果没有隐藏的代码,以及此页面中缺少的其他部分,则无法运行代码。因此,网页具有标记部分,并且还具有代码隐藏部分。运行这样的网页需要这两个位和部分。如前所述,在大多数情况下,您需要首先在 VS 中设置一个工作站点站点应用程序,然后将相关页面添加到项目中。如前所述,通常最好让 Visual Studio 创建/添加网页,然后抓取标记(在窗体标记之间)并将其粘贴到新页面中。

我提出上述建议的原因是,Visual Studio/Code 会通过一组相当复杂的规则将新网页添加到现有项目中,并且在大多数情况下,您需要/要求 VS 添加网页,而不仅仅是将一些现有网页复制到该 Web 项目中。