【问题标题】:Which ASP.NET Page event is the best place for this type of code?哪个 ASP.NET 页面事件是此类代码的最佳位置?
【发布时间】:2010-01-09 21:53:54
【问题描述】:

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

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

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

【问题讨论】:

    标签: asp.net performance


    【解决方案1】:

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

    如果不了解应用程序的更多信息,很难说 MVC 是否比 Web 表单更适合您的应用程序。但是,如果您不想抽象掉传统的 Web 模型,那么我会选择 MVC。

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        【解决方案3】:

        好吧,相反,如果它主要使用 javascript 和 jQuery,我建议你使用 MVC。例如,您不会对 ID 有任何问题。 有一些解决方法可以将 jQuery 与 Web 表单一起使用,但在选择 DOM 方面从来都不是完全干净的。

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

        【讨论】:

          【解决方案4】:

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

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

          在 MVC 中,您可以在控制器中分配值并将其呈现在 UI 中,或者使用 JQuery,您可以使用 $.ajax 真正轻松地执行控制器请求。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2012-01-23
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2014-08-01
            • 1970-01-01
            相关资源
            最近更新 更多