哪种ASP.NET页面事件是这类代码的最佳位置?

时间:2010-01-08 22:42:45

标签: asp.net performance

我有一个相对简单的页面,它将使用Javascript或JQuery在客户端执行大部分操作。但是,最初我需要根据QueryString参数从数据库服务器检索一些数据。

我计划通过旧式ASP方式(var severData =<%= MyPublicData%>)块以JSON字符串的形式将此数据传递给脚本,其中MyPublicData在CodeBehind中定义为: 公共字符串MyPublicData;

问题是,ASP.NET页面生命周期中哪个事件最适合这个? Page_Init? Page_Load中?此外,在ASP.NET MVC中进行此操作是否值得。我确实看过这种可能性,但对于这样一个简单的页面来说,这似乎有点太多了,我在客户端上做了90%以上的工作。有什么想法吗?

4 个答案:

答案 0 :(得分:0)

Page_Load更合适,但两者都可以。

在不了解应用程序的情况下,很难说MVC是否比webforms更适合您的应用程序。但是,如果您不想抽象出传统的Web模型,那么我将使用MVC。

答案 1 :(得分:0)

这种简单的属性或字段分配可以在生命周期的任何地方进行。由于没有任何其他原因,您可以将其粘贴在Page_Load中,因为该方法通常会在代码隐藏中等待您。

答案 2 :(得分:0)

嗯,相反,如果它主要使用jQuery javascript,我建议你使用MVC。例如,你不会对ids有任何问题。 有一些解决方法可以将jQuery与webforms一起使用,但是在选择DOM时它绝不是完全干净的。

MVC:一种单一操作方法,您可以在其中检索数据(最好是从一个小型存储库)和一个视图,您可以在其中显示数据,并完全控制您的html元素。 而jQuery将完全适合您的客户工作。

答案 3 :(得分:0)

你可以去上班;您可以在ASP.NET Web表单中将公共变量/字段写入客户端,尽管MVC因呈现UI的方式而具有优势。

因此,对于MyPublicData,您可以在生命周期的任何部分为其分配值;你可以在代码隐藏中将它分配给标签或类似的东西,或者如果它是JS标记你可以使用Page.ClientScript.RegisterStartupScript或RegisterClientScriptBlock写出来......所以你有多个选项。

在MVC中,您将在控制器中分配值并在UI中呈现它,或者使用JQuery,您可以使用$ .ajax轻松完成控制器请求。