代码之家  ›  专栏  ›  技术社区  ›  Arve Systad

如何从.aspx页面中去掉“默认”表单元素?

  •  2
  • Arve Systad  · 技术社区  · 15 年前

    作为网络标准的极客,我不喜欢默认设置。 <form runat="server"> 它包围了我的整个网页。我见过很多基于ASP.NET的网页没有这些功能,所以看起来可以在不删除任何功能的情况下删除它。怎么用?

    4 回复  |  直到 15 年前
        1
  •  5
  •   Vilx-    15 年前

    必须有一个 <form runat="server"> 如果你想使用控件的话。否则,回发是不可能的,就像viewstate和.net依赖的其他内容一样。

    你确定你看到了你认为你看到的吗?也许这些页面只包含静态内容?或者它们是用户控件?或者另一个常见的可能性——也许是母版页 <表单runat=“server”> ?

        2
  •  3
  •   John Rudy    15 年前

    在没有的情况下 <form runat="server"> 标记,您很可能会看到一个构建在ASP.NET MVC中的站点,正如其中一个注释所提到的。ASP.NET MVC不使用服务器控件、viewstate或服务器端表单提供的其他功能,而是使用更接近HTML模型的简单内联脚本。

    另一方面,您更接近纯HTML(实际上,您本质上是纯HTML),因此更容易执行JavaScript操作、集成自定义UI小部件等。

    从(潜在的)不利方面来看,如果您对ASP.NET WebForms控件和技术进行了大量投资,那么这些控件和技术通常与新的MVC框架不兼容。此外,还有一个与之相关的学习曲线。(我现在就要开始了。)

    有关ASP.NET MVC的详细信息,请参见 official site . 正如其他人提到的,这项技术的基础也是如此。

        3
  •  2
  •   driAn    15 年前

    表单元素是 本质的 使ASP.NET正常工作。有必要将用户输入发回Web服务器。

    我建议你看看 ASP.NET viewstate 为了理解这是如何工作的……

    唯一可以删除该元素的方案是在.aspx文件中使用纯静态HTML。

        4
  •  1
  •   Simon Forrest    15 年前

    如果不需要利用Web控件、视图状态等,则可以使用标准HTML表单对ASP.NET页进行编码,并仍然获取通过请求对象返回的值。同样,您可以通过响应对象(显式或使用 <%= MyVar %> 格式)所以没有什么可以阻止你拥有一个动态网站 <form runat="server"> . 从本质上讲,在与页面/表单的交互方面,您会得到类似于经典的ASP的东西,但是您在后端有完整的.NET框架和所有常见的好C/VB.NET东西。

    显然,有一个问题是,这是否是一个明智的方法,因为您失去了ASP.NET的许多好处(尽管您获得了对输出的一定程度的控制,而您没有使用Web控件)。如果你不想使用 <表单runat=“server”> 那么MVC似乎是最好的选择。我们使用web表单模型的唯一原因是 <表单runat=“server”> 是在迁移经典的ASP应用程序时,我们想快速地将端口连接到ASP.NET,然后将代码修改为更自然的.NET样式。

    因此,有一些限制,这是完全可能的,但不一定推荐。

    当然,它根本不影响对Web标准的遵从性,因为 runat="server"