3

我在 .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();
}
4

6 回答 6

2

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

于 2011-11-18T14:18:26.650 回答
2

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

您的代码片段var v = new Something();将完全相同。

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

于 2011-11-18T14:26:14.057 回答
1
protected Something v;

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

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

于 2011-11-18T14:37:49.917 回答
1

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

于 2011-11-23T10:54:22.293 回答
0

是的,或者您可以继承其他名称

于 2011-11-18T14:24:05.450 回答
0

<% %> 在客户端渲染中运行

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

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

于 2011-11-18T15:05:48.067 回答