【问题标题】:Move code from .aspx file to .cs file without any difference将代码从 .aspx 文件移动到 .cs 文件,没有任何区别
【发布时间】:2011-11-18 14:12:27
【问题描述】:

我在 .apsx 中的 <head> 中有一些代码我想移到我的 .cs 文件。所以我只是将它移到我的 Page_Load() 中,一切都会产生相同的结果吗?谢谢。

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="da" lang="da">
<head>
    <%
        var v = new Something(); // Want to move this to .cs
    %>
</head>
</html>

等于?

protected void Page_Load(object sender, EventArgs e)
{
    var v = new Something();
}

【问题讨论】:

  • 完全取决于你在这里如何使用v
  • 你想用这个做什么?
  • 有趣。我可以添加真正的行而不是“var v = new Something();”但我不知道这是否会有所帮助。你怎么看?我还能做些什么来澄清吗?或者也许,如果有人能指出我正确的方向,那么我可以阅读更多关于这个的信息。我不知道从哪里开始。
  • @radbyx Naybe 但您需要回答 Munim Abdul 的问题。
  • @Munim 我不得不将一些代码从其他人迁移到我的代码中。他们使用这种形式进行我以前从未见过或使用过的内联。所以我想移动它,所以我会去我的舒适区:)

标签: c# asp.net head


【解决方案1】:

正如其他人所提到的,这取决于您的代码到底在做什么。

您的代码 sn-p var v = new Something(); 的工作方式完全相同。

但是,这两段代码的执行时间却大不相同。 Page_Load 发生在实际 aspx 页面上的任何代码运行之前。在我相信的 Render 事件之前,aspx 页面上的代码本身不会运行。您可以查看Page Lifecycle 以查看完整的事件列表。

【讨论】:

  • 实际上我的 Page_Load 目前是空的,所以知道我想我不会受伤 :)
  • @radbyx 与其说 Page_Load 为空或其中有代码,不如说是事情发生的时候才是最重要的。
  • 是的,我知道你的意思。我只是说,只要我的班级在我放任何东西之前是空的,我就不能破坏任何我认为的东西。
【解决方案2】:

这取决于您要使用 v 的范围。 如果您想让它在所有页面中都可用,只需将其声明为类成员。

【讨论】:

  • 好吧,范围就是这个页面/类,所以我猜应该没问题。
【解决方案3】:
protected Something v;

protected void Page_Load(object sender, EventArgs e)
{
     v = new Something();
}

这更接近你所拥有的,这样你实际上仍然可以在 aspx 页面中使用该变量。

【讨论】:

    【解决方案4】:

    这取决于您要将逻辑移动到哪里 - 页面加载或任何事件触发。

    【讨论】:

      【解决方案5】:

      是的,或者你可以继承到其他名字

      【讨论】:

        【解决方案6】:

        在客户端渲染中运行

        受保护的 void Page_Load(object sender, EventArgs e) { var v = new Something(); } 运行服务器页面生命周期

        所以你可以看到文章(msdn) http://msdn.microsoft.com/en-us/library/ms178135(v=vs.80).aspx

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2016-05-31
          • 2011-05-16
          相关资源
          最近更新 更多