我正在尝试使用 asp.net 。令我惊讶的一件事是,在我们的设计代码中,我们没有使用通用等<html>
,<body>
但我们使用了<asp:content>
,<asp:button>
等等。我试图找出原因,但最终以抽象的 msdn 页面结束。所以请帮我解决这个问题
2 回答
带有<asp:...
标签前缀的标签意味着它们是“服务器端控件”,这意味着:
您的程序可以在服务器端(事件、参数等)和客户端脚本(例如 JavaScript)访问它们
当您实际运行您的网站时,它们将作为标准 HTML 标记“渲染”(运行时输出/“翻译为”)
例如,当您构建您的网页时,标签<asp:textbox runat="server" id=foo...
将像<input type="text" id="foo
您在浏览器中运行 ASP.net 应用程序时一样输出。
您可以创建一个简单的网页,在浏览器中运行它,然后VIEW SOURCE
查看这个“翻译”在工作中。
因此,当您开发/设计您的 Web 应用程序时,ASP.Net 将为您提供他们所谓的“控件”(例如按钮控件、标签控件等)。它们都将在运行时被翻译成标准的 HTML 标签/元素。
以上涉及到称为“Web Forms”的 ASP.Net 技术。
你可以从它开始 - 它更容易编程。当您变得更高级和/或更喜欢做更多“裸机”标准 HTTP POST/GET 时,您可以查看 ASP.Net MVC/Razor - 这种 ASP.Net 架构将让您使用标准 HTML 并几乎可以控制一切(这也意味着您需要知道如何控制“一切”)。
在 ASP.NET 页面中使用 HTML 标记没有任何问题,当然,只要您runat="server"
在它们上使用。我喜欢两者都用,取决于它是什么。我认为使用 HTML 标记的好处意味着您对 HTML 更加熟悉,并且不依赖于 ASP.NET 语法。
另一方面,在某些情况下,实际编写所有 HTML 以复制控件将是一项非常费力的任务。像一个DataGrid
包含所有事件的复杂的东西对于编写纯 HTML/JavaScript 来说绝对是一场噩梦。在这种情况下,使用 ASP.NET 控件和语法使其更快、更清晰。