为什么我必须在所有ASP上指定runat="server".NET控件时,它是一个强制属性,而server是我对ASP有限的了解中唯一可用的选项.NET,如果我不使用它就会出错?

我知道我可以 Select 在HTML标签上使用它,我也知道客户机/服务器模式以及它实际指定的内容.

是控件是ASP.NET控件所暗示的冗余标记,还是有潜在的原因呢?

推荐答案

我一直认为,这是有更多的理解,你可以混合ASP.NET标记和HTML标记,以及HTML标记可以 Select 是否为runat="server".保留标记不会造成任何影响,而且会导致编译器错误将其删除.你对网络语言的暗示越多,对于一个初露头角的程序员来说,学习它就越不容易.这是详细描述标记属性的一个很好的理由.

这段对话发生在迈克·辛克尔与微软国家服务部的塔尔博特·克罗威尔之间的Blog次谈话中.相关信息如下(第一段因原文语法错误而转述):

[...],但是对于一致性和可扩展性而言,<runat="server">的重要性更大.

如果开发人员必须标记一些标记(即<asp: />)ASP.NET引擎可以忽略,那么还存在标记之间的命名空间冲突和future 增强的潜在问题.通过要求<runat="server">属性,这一点被否定.

它接着说:

如果所有客户端标记都需要<runat=client>,解析器将需要解析所有标记并go 掉<runat=client>部分.

他接着说:

目前,

Asp.net相关问答推荐

$(document).ready 不工作

从 asp.net 中的 Web.config 获取连接字符串

将 Global.asax 迁移到 Startup.cs

使 ASP.NET WCF 将字典转换为 JSON,省略键和值标签

如何防止 Azure 网站进入Hibernate 状态?

模型项的类型为 CookMeIndexViewModel,但需要类型为 IEnumerable 的模型项

将 null 转换为字符串的函数

如何在 ASP.NET Web 窗体中使用依赖注入

在视图 Mvc.net 中访问路由值

从 GUID 中删除破折号是个好主意吗?

新的 ASP.NET MVC 5 应用程序如何知道如何创建数据库以及帐户控制器如何访问数据库?

Owin 中是否有来自 Global.asax 的 Application_End?

ASP.NET IIS Web.config [内部服务器错误]

为 ASP.NET Core MVC 显示 404 Not Found 页面

ASP.Net 错误:应用程序池的标识无效

将字典绑定到中继器

在 ASPNET 标识 2.0 中禁用用户

ASP.net 判断页面是 http 还是 https

如何使 URL 重写与 web.Release.config 转换一起工作?

Session.Clear() 与 Session.RemoveAll()